summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-12-21gcc-runtime: add separate package for gcc runtime libsHarmen Stoppels6-1/+250
The gcc-runtime package adds a separate node for gcc's dynamic runtime libraries. This should help with: 1. binary caches where rpaths for compiler support libs cannot be relocated because the compiler is missing on the target system 2. creating "minimal" container images The package is versioned like `gcc` (in principle it could be unversioned, but Spack doesn't always guarantee not mixing compilers)
2023-12-21specs: Better error messages for badly quoted specs (#41805)Todd Gamblin4-25/+18
If you are calling Spack from the python API, you might have written something like this before #41529: ``` find = SpackCommand("find") find('--format={name}', 'saxpy@1.0.0', '+rocm', 'amdgpu_target="gfx90a"') ``` But with the breaking change in #41529, you should write: ``` find = SpackCommand("find") find('--format={name}', 'gromacs', '+rocm', 'amdgpu_target=gfx90a') ``` Note that we don't need quotes in Python strings, and that this is what would come in via argv if you typed a quoted variant on the CLI. The error messages for strings like this are not great -- you get something like this: ``` ==> No package matches the query: gromacs+rocm amdgpu_target="gfx90a" ``` Which doesn't indicate that the issue might be your quoting. This is because we were simply outputting the argv we got, instead of using spec.format() to output the error message. This PR fixes such errors to use `spec.format()` and to look like this: ``` ==> No package matches the query: gromacs+rocm amdgpu_target='"gfx90a"' ``` So users should have an easier time understanding that Spack considers the variant value to contain quotes here. - [x] update ConstraintAction to store parsed Specs - [x] refactor commands to display formatted parsed Specs instead of raw input
2023-12-21intel-oneapi-compilers and intel-oneapi-ccl: added new version to packages ↵Andrey Perestoronin2-2/+12
(#41807) * added new packages * compiler package * fix link in ccl * fix another links in ccl
2023-12-21ci: use "strong preference" idiom for compilers (#41806)Harmen Stoppels2-2/+5
to avoid duplication of conflicts / requirements in config
2023-12-20Only reuse externals when configured (#41707)Harmen Stoppels3-33/+78
Users expect that changes to the externals sections in packages.yaml config apply immediately, but reuse concretization caused this not to be the case. With this commit, the concretizer is only allowed to reuse externals previously imported from config if identical config exists.
2023-12-20fix attribute error in perl build-system (#41628)Christopher Christofi1-14/+25
2023-12-20Add missing import to packages (#41791)Massimiliano Culpo4-5/+8
2023-12-20containers.rst: small docs improvement (#41792)Harmen Stoppels1-2/+3
2023-12-20`spack buildcache push --tag`: create container image with multiple roots ↵Harmen Stoppels6-127/+304
(#41077) This PR adds a flag `--tag/-t` to `buildcache push`, which you can use like ``` $ spack mirror add my-oci-registry oci://example.com/hello/world $ spack -e my_env buildcache push --base-image ubuntu:22.04 --tag my_custom_tag my-oci-registry ``` and lets users ship a full, installed environment as a minimal container image where each image layer is one Spack package, on top of a base image of choice. The image can then be used as ``` $ docker run -it --rm example.com/hello/world:my_custom_tag ``` Apart from environments, users can also pick arbitrary installed spec from their database, for instance: ``` $ spack buildcache push --base-image ubuntu:22.04 --tag some_specs my-oci-registry gcc@12 cmake $ docker run -it --rm example.com/hello/world:some_specs ``` It has many advantages over `spack containerize`: 1. No external tools required (`docker`, `buildah`, ...) 2. Creates images from locally installed Spack packages (No need to rebuild inside `docker build`, where troubleshooting build failures is notoriously hard) 3. No need for multistage builds (Spack just tarballs existing installations of runtime deps) 4. Reduced storage size / composability: when pushing multiple environments with common specs, container image layers are shared. 5. Automatic build cache: later `spack install` of the env elsewhere speeds up since the containerized environment is a build cache
2023-12-20Fujitsu packages: require %fj (#41755)Massimiliano Culpo3-32/+4
These packages were written before the "requires" directive, and so they are conflicting with all compilers but Fujitsu to express they _require_ `%fj`
2023-12-20Add detection tests for XL compilers (#41743)Massimiliano Culpo2-0/+29
2023-12-19GDAL: Ensure a spack libproj is used instead of a system libproj (#41785)Chris Marsh1-0/+8
* Ensure a spack libproj is used instead of a system libproj when libproj < 8. spack/spack/issues/41299 * Fix style as per ci-bot * Fix style as per ci-bot * Ensure 3.5:3.8. Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> --------- Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2023-12-19intel-oneapi-compilers 2024.0.2 (#41778)Andrey Perestoronin2-1/+12
* new compiler packages * Fix ifort version number --------- Co-authored-by: Robert Cohn <rscohn2@gmail.com>
2023-12-19Require target=x86_64 for some packages (#41633)Annop Wongwathanarat4-0/+6
This resolves issue #41148
2023-12-19"spack diff": add ignore option for dependencies (#41711)Peter Scheibel8-27/+208
* add trim function to `Spec` and `--ignore` option to 'spack diff' Allows user to compare two specs while ignoring the sub-DAG of a particular dependency, e.g. spack diff --ignore=mpi --ignore=zlib trilinos/abcdef trilinos/fedcba to focus on differences closer to the root of the software stack
2023-12-19CI: Disable downloading artifacts from upstream jobs (#41432)kwryankrattiger2-0/+4
* CI: Disable downloading artifacts from upstream jobs * CI: Default .base-jobs are `when:manual`
2023-12-19environment_modifications_for_specs: do not mutate spec.prefix (#41737)Harmen Stoppels1-41/+31
Sometimes env variables computed in `setup_run_environment` depend on tests w.r.t. files in `spec.prefix`, but Spack temporarily projects `spec.prefix` to the view. This is problematic for two reasons: 1. Some packages iterate over `<prefix>/bin`: they expect only the current package's executables, but find all linked in the view, leading to false positives. 2. Some packages test for `os.path.islink(...)`, which is always true in a view `gcc` is an example that does both. This PR lets Spack compute the environment modifications using the original prefix, and projects to the view afterwards
2023-12-19Skip 'icc.patch' in var/spack/repos/builtin/packages/py-gevent/package.py ↵Dom Heinzeller1-1/+1
for py-gevent@23.7.0+ (#41568)
2023-12-19e4s: add julia (#41768)Harmen Stoppels1-0/+1
2023-12-19Add an audit to prevent virtual packages with variants specified (#41747)Massimiliano Culpo12-15/+108
Currently, a virtual spec is composed of just a name and a version. When a virtual spec contains other components, such as variants, Spack won't emit warnings or errors but will silently drop them - which is unexpected by users.
2023-12-19adios2: fix build failure in 2.7.1 (#41753)Ben Wibking2-0/+27
2023-12-19umpire: backport -fcompare-debug-second flag removal (#41506)Mikael Simberg1-0/+7
2023-12-19ffmpeg: mostly build fixes (#41050)Martin Aumüller1-2/+21
2023-12-19openblas: add patches to build with clang (#39138)Aiden Grossman3-0/+50
2023-12-19removing deprecated: recipes tower-agent and tower-cli, as nf- prefixed ↵Dr Marco Claudio De La Pierre2-109/+0
recipes available (#41576) Signed-off-by: Dr Marco Claudio De La Pierre <marco.delapierre@seqera.io>
2023-12-19lbann: relax the requirement on protobuf (#41591)Brian Van Essen1-1/+1
2023-12-19build(deps): bump black from 23.11.0 to 23.12.0 in /lib/spack/docs (#41615)dependabot[bot]1-1/+1
Bumps [black](https://github.com/psf/black) from 23.11.0 to 23.12.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.11.0...23.12.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19easi: specify better the impalajit dependency (#41637)Thomas-Ulrich1-2/+2
2023-12-19pcre: ensure consistency between autotools and cmake builds (#41644)Wouter Deconinck1-16/+30
Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
2023-12-19legion: do not set HIP_PATH env variable (#41660)Richard Berger2-5/+4
* legion: do not set HIP_PATH env variable * flecsi: workaround Legion CMake for +rocm
2023-12-19openmpi: allow external libevent in general case (#41686)Howard Pritchard1-1/+2
add a internal-libevent variant to add an out. related to #41549 Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2023-12-19tau : v2.33.1 and later requires otf2 v3 (#41691)wspear1-1/+2
2023-12-19legion: inject correct mpicc to embedded GASnet slingshot11 config (#41701)Richard Berger1-0/+9
2023-12-19ufs-weather-model: add build dependency (#41724)Tom Payerle1-0/+1
2023-12-19PyTorch: update ecosystem (#41713)Adam J. Stewart4-0/+7
2023-12-19samtools: add v1.19 (#41634)James Beal3-0/+11
Co-authored-by: James Beal <jb23@sanger.ac.uk>
2023-12-19ut: add v2.0.0 and v2.0.1 (#41771)Mikael Simberg1-0/+2
2023-12-19xyce: remove CMake test for all compilers (#41679)Paul Kuberry2-17/+11
2023-12-19intel-mpi-benchmarks: add v2021.7, v2021.6, v2021.5, v2021.4 (#41730)Jack Morrison1-0/+4
2023-12-19creduce: fix build of `@develop` (#41258)Pramod Kumbhar1-0/+1
2023-12-19uthash: add new package (#41732)Christopher Christofi1-0/+20
2023-12-19acts: new versions 31.* (#41733)Wouter Deconinck1-0/+3
This adds three new versions in the 31.* series. Release notes of 31.0.0 at https://github.com/acts-project/acts/releases/tag/v31.0.0. No changes to the CMakeLists.txt files that need addressing in the package recipe. The only new feature I'm a bit concerned about is https://github.com/acts-project/acts/pull/2626, which replaces testing for C++20 concepts support by the feature-testing macro `__cpp_concepts`, which is also a C++20 feature. So technically we now should require `cxxstd=20` even though Acts itself still allows (and defaults to) 17. Judging by https://en.cppreference.com/w/cpp/compiler_support/20, the support for feature-testing macros was added very early by most compilers.
2023-12-19whizard: fix support for building with hepmc output (#41538)Thomas Madlener1-17/+21
2023-12-19build(deps): bump black in /.github/workflows/style (#41616)dependabot[bot]1-1/+1
Bumps [black](https://github.com/psf/black) from 23.11.0 to 23.12.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.11.0...23.12.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19flexiblas: explicitly set SYSCONFDIR (#41748)Wouter Deconinck1-0/+3
As of CMake 3.4, [GNUInstallDirs](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html) treats `SYSCONFDIR` differently for a prefix that starts with `/opt`, then "the SYSCONFDIR value etc becomes /etc/opt/...." In the case of flexiblas, that results in failing attempts to write files to a system directory. Since [flexiblas version 1](https://github.com/mpimd-csc/flexiblas/commit/0f2d2c76594ed27c9315f3736ff7d2727223620a#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aR16), we can override SYSCONFDIR with our own defines.
2023-12-19rebayes: add v1.2.2 (#41749)snehring1-0/+5
2023-12-19kalign: add v3.4.0 (#41758)Christopher Christofi1-5/+15
Co-authored-by: Rocco Meli <r.meli@bluemail.ch>
2023-12-19`spack config get`/`blame`: with no args, show entire config Massimiliano Culpo4-42/+50
This PR changes the default behavior of `spack config get` and `spack config blame` to print a flattened version of the entire spack configuration, including any active environment, if the commands are invoked with no section arguments. The new behavior is used in Gitlab CI to help debug CI configuration, but it can also be useful when asking for more information in issues, or when simply debugging Spack.
2023-12-19julia: set compatibility with `suite-sparse` (#41754)Mosè Giordano1-0/+1
2023-12-19gnina: add version 1.1 (#41762)Rocco Meli1-0/+1