summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-03-24Add `intel-oneapi-runtime`, allow injecting virtual dependencies (#42062)Massimiliano Culpo12-70/+269
This PR adds: - A new runtime for `%oneapi` compilers, called `intel-oneapi-runtime` - Information to both `gcc-runtime` and `intel-oneapi-runtime`, to ensure that we don't mix compilers using different soname for either `libgfortran` or `libifcore` To do so, the following internal mechanisms have been implemented: - Possibility to inject virtual dependencies from the `runtime_constraints` callback on packages Information has been added to `gcc-runtime` to provide the correct soname under different conditions on its `%gcc`. Rules injected into the solver looks like: ```prolog % Add a dependency on 'gfortran@5' for nodes compiled with gcc@=13.2.0 and using the 'fortran' language attr("dependency_holds", node(ID, Package), "gfortran", "link") :- attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). attr("virtual_node", node(RuntimeID, "gfortran")) :- attr("depends_on", node(ID, Package), ProviderNode, "link"), provider(ProviderNode, node(RuntimeID, "gfortran")), attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). attr("node_version_satisfies", node(RuntimeID, "gfortran"), "5") :- attr("depends_on", node(ID, Package), ProviderNode, "link"), provider(ProviderNode, node(RuntimeID, "gfortran")), attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). ```
2024-03-24openmpi: Add new variant: romio-filesystem=string (#43265)Loic Hausammann1-0/+25
Co-authored-by: loikki <loic.hausammann@id.ethz.ch>
2024-03-24py-plotly: Add versions up to 5.20 (#43284)potter-s1-1/+8
2024-03-24openCARP: Add v15.0 packages (#43299)Marie Houillon3-4/+11
Co-authored-by: openCARP consortium <info@opencarp.org>
2024-03-24py-kaleido: Add MacOS build, fix checksums (#43309)Gavin John1-5/+58
* py-kaledio: Fix completely borked package.py * Readd stuff I forgot to add * And one last missing thing * Remove python restriction * [@spackbot] updating style on behalf of Pandapip1 * Add MacOS build * Fix checksum * Handle all supported OSes * Split imports * Remove extra version stuff
2024-03-23paraview: fix range of exodusII-netcdf4.9.0.patch (#42926)fgava901-6/+11
Co-authored-by: Gava, Francesco <francesco.gava@mclaren.com>
2024-03-23zlib-ng: New variants: +shared and +pic (#42796)Alex Richert1-1/+17
2024-03-23py-line-profiler: Add 4.1.2 and 3.5.1 with their deps (#43156)Sinan2-2/+37
Co-authored-by: sbulut <sbulut@3vgeomatics.com> Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-03-23suite-sparse: Add version 7.3.1 (#43328)Davide1-3/+17
2024-03-23py-torch-nvidia-apex: @3.11: Add config_settings(PEP517), add missing ↵Auriane R1-0/+10
py-packaging (#43306)
2024-03-23BLT: add new version 0.6.2 (#43257)Chris White1-0/+1
2024-03-23re2: use the same C++ std used by abseil-cpp (#43288)Juan Miguel Carceller1-0/+1
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-03-23py-vl-convert-python: Add 1.3.0 (#43297)吴坎1-2/+4
2024-03-23mpich: add variant +xpmem to specify use of xpmem (#43293)Howard Pritchard1-0/+6
Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2024-03-23bgen: add new package with version 1.1.7 (#43327)Christopher Christofi1-0/+27
2024-03-23hip: don't set HIP_PATH in ROCm 5.5+ (#42882)Richard Berger1-1/+3
2024-03-23py-tensorflow-probability: Re-activate +py-jax variant for @0.20:, Add ↵Jonas Eschle1-9/+12
0.23.0 (#43249)
2024-03-23New package: qctool (#43326)Christopher Christofi1-0/+28
2024-03-23NWChem pacakge: expand fftw patch appliance range to 7.2.2 (#43321)YI Zeping1-3/+3
* expand fftw patch appliance range to include 7.2.2 * fix formatting bug
2024-03-23octave package: correction to `jdk` variant description (#43325)Gavin John1-1/+1
2024-03-23openjdk package: use correct homepage (#43324)Gavin John1-1/+1
2024-03-23icedtea: change jdk dependency to java (#43323)Gavin John1-1/+1
2024-03-23BerkeleyGW package: add version 4.0 (#43316)Miguel Dias Costa1-1/+22
2024-03-22aws-ofi-nccl package: add versions including 1.8.1 (#43305)Auriane R1-3/+17
The default url couldn't be the one with v0.0.0-aws since spack was replacing v0.0.0-aws with v<version_number> for example, deleting the -aws suffix. I used the url_for_version method to specify this suffix.
2024-03-22New package: py-kneaddata (#43310)Gavin John1-0/+35
2024-03-22netcdf-cxx4: fix reference error (#43322)Chris Marsh1-1/+1
2024-03-22Support for prereleases (#43140)Harmen Stoppels12-115/+275
This adds support for prereleases. Alpha, beta and release candidate suffixes are ordered in the intuitive way: ``` 1.2.0-alpha < 1.2.0-alpha.1 < 1.2.0-beta.2 < 1.2.0-rc.3 < 1.2.0 < 1.2.0-xyz ``` Alpha, beta and rc prereleases are defined as follows: split the version string into components like before (on delimiters and string boundaries). If there's a string component `alpha`, `beta` or `rc` followed by an optional numeric component at the end, then the version is prerelease. So `1.2.0-alpha.1 == 1.2.0alpha1 == 1.2.0.alpha1` are all the same, as usual. The strings `alpha`, `beta` and `rc` are chosen because they match semver, they are sufficiently long to be unambiguous, and and all contain at least one non-hex character so distinguish them from shasum/digest type suffixes. The comparison key is now stored as `(release_tuple, prerelease_tuple)`, so in the above example: ``` ((1,2,0),(ALPHA,)) < ((1,2,0),(ALPHA,1)) < ((1,2,0),(BETA,2)) < ((1,2,0),(RC,3)) < ((1,2,0),(FINAL,)) < ((1,2,0,"xyz"), (FINAL,)) ``` The version ranges `@1.2.0:` and `@:1.1` do *not* include prereleases of `1.2.0`. So for packaging, if the `1.2.0alpha` and `1.2.0` versions have the same constraints on dependencies, it's best to write ```python depends_on("x@1:", when="@1.2.0alpha:") ``` However, `@1.2:` does include `1.2.0alpha`. This is because Spack considers `1.2 < 1.2.0` as distinct versions, with `1.2 < 1.2.0alpha < 1.2.0` as a consequence. Alternatively, the above `depends_on` statement can thus be written ```python depends_on("x@1:", when="@1.2:") ``` which can be useful too. A short-hand to include prereleases, but you can still be explicit to exclude the prerelease by specifying the patch version number. ### Concretization Concretization uses a different version order than `<`. Prereleases are ordered between final releases and develop versions. That way, users should not have to set `preferred=True` on every final release if they add just one prerelease to a package. The concretizer is unlikely to pick a prerelease when final releases are possible. ### Limitations 1. You can't express a range that includes all alpha release but excludes all beta releases. Only alternative is good old repeated nines: `@:1.2.0alpha99`. 2. The Python ecosystem defaults to `a`, `b`, `rc` strings, so translation of Python versions to Spack versions requires expansion to `alpha`, `beta`, `rc`. It's mildly annoying, because this means we may need to compute URLs differently (not done in this commit). ### Hash Care is taken not to break hashes of versions that do not have a prerelease suffix.
2024-03-22Spack CI: Refactor process_command for Cross Platform support (#39739)John W. Parent1-164/+192
Generate CI scripts as powershell on Windows. This is intended to output exactly the same bash scripts as before on Linux. Co-authored-by: Ryan Krattiger <ryan.krattiger@kitware.com>
2024-03-22python wheels: do not "expand" (#43317)Harmen Stoppels39-743/+156
2024-03-22openssh: add 9.7p1 and 9.6p1; update workaround for clang (#40857)Thomas-Ulrich1-3/+9
Signed-off-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-03-22apex: Set `APEX_WITH_KOKKOS` CMake option in apex package (#43243)Mikael Simberg1-0/+6
* Make sure APEX_WITH_KOKKOS CMake option is set in apex * Add conflict for apex with ~kokkos
2024-03-22ELPA: enable GPU streams and update deprecated variables (#43145)Rocco Meli1-5/+26
* elpa streams * [@spackbot] updating style on behalf of RMeli * Apply suggestions from @albestro * Update var/spack/repos/builtin/packages/elpa/package.py Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi> --------- Co-authored-by: RMeli <RMeli@users.noreply.github.com> Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
2024-03-22py-cmake: only run test suite when run_tests (#43246)Valentin Volkl1-0/+13
As the cmake build is triggered by scikit build, the usual spack option for enabling tests had no effect and the heavy test suite ran all the time. Used https://github.com/scikit-build/cmake-python-distributions/issues/172#issuecomment-890322263 to implement how to pass options to the actual `cmake` build. I also excluded some tests that failed for me on alma9 (gcc 11.4.1), so the rest of the test suite can be run.
2024-03-22ffmpeg: add v6.1.1 and older patch release updates (#43050)Martin Aumüller1-2/+27
2024-03-22ncurses: Add terminfo for rxvt-unicode{,-256color} (#42721)Henning Glawe2-0/+204
taken from the debian ncurses source package.
2024-03-22easi: add v1.3.0, python bindings and master (#42784)Thomas-Ulrich1-2/+20
2024-03-22openblas: Add variant dynamic_dispatch: select best kernel at runtime (#42746)AMD Toolchain Support1-0/+16
Enable OpenBLAS's built-in CPU capability detection and kernel selection. This allows run-time selection of the "best" kernels for the running CPU, rather than what is specified at build time. For example, it allows OpenBLAS to use AVX512 kernels when running on ZEN4, and built targeting the "ZEN" architecture. Co-authored-by: Branden Moore <branden.moore@amd.com>
2024-03-22libristra: depends_on() for lua: allow newer lua versions (#42810)Richard Berger1-2/+2
2024-03-22py-neptune-client and missing deps: new package (#43059)Alex Leute4-0/+132
Co-authored-by: Cecilia Lau <chlits@rit.edu> Co-authored-by: Jen Herting <jen@herting.cc>
2024-03-22libiconv: fix building with nvhpc (#43033)Sergey Kosukhin1-0/+11
2024-03-21helics: Add version 3.5.1 (#43314)HELICS-bot1-0/+1
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-22py-mrcfile: add new version (#43125)Christopher Christofi1-1/+3
2024-03-21xv (image viewer): Add missing depends_on(libxt) (#43277)Alex Richert1-0/+1
2024-03-21x264: Tag a recent commit: 20240314 (#43304)Rémi Lacroix1-0/+1
x264 does not publish releases so tag a newer commit in Spack in order to be able to use an up-to-date version.
2024-03-21py-torchmetrics: add v1.3.2 (#43244)Adam J. Stewart1-0/+1
2024-03-21dorado: adding version 0.5.3 (#43313)snehring1-0/+4
2024-03-21libEnsemble: add v1.2.2 (#43308)Stephen Hudson1-1/+2
2024-03-21namd: disable parallel build for 3.0b3 (#43215)Rocco Meli1-0/+7
2024-03-21Re enable aws pcluster buildcache stack (#38931)Stephen Sachs13-320/+381
* Changes to re-enable aws-pcluster pipelines - Use compilers from pre-installed spack store such that compiler path relocation works when downloading from buildcache. - Install gcc from hash so there is no risk of building gcc from source in pipleine. - `packages.yam` files are now part of the pipelines. - No more eternal `postinstall.sh`. The necessary steps are in `setup=pcluster.sh` and will be version controlled within this repo. - Re-enable pipelines. * Add and * Debugging output & mv skylake -> skylake_avx512 * Explicilty check for packages * Handle case with no intel compiler * compatibility when using setup-pcluster.sh on a pre-installed cluster. * Disable palace as parser cannot read require clause at the moment * ifort cannot build superlu in buildcache `ifort` is unable to handle such long file names as used when cmake compiles test programs inside build cache. * Fix spack commit for intel compiler installation * Need to fetch other commits before using them * fix style * Add TODO * Update packages.yaml to not use 'compiler:', 'target:' or 'provider:' Synchronize with changes in https://github.com/spack/spack-configs/blob/main/AWS/parallelcluster/ * Use Intel compiler from later version (orig commit no longer found) * Use envsubst to deal with quoted newlines This is cleaner than the `eval` command used. * Need to fetch tags for checkout on version number * Intel compiler needs to be from version that has compatible DB * Install intel compiler with commit that has DB ver 7 * Decouple the intel compiler installation from current commit - Use a completely different spack installation such that this current pipeline commit remains untouched. - Make the script suceed even if the compiler installation fails (e.g. because the Database version has been updated) - Make the install targets fall back to gcc in case the compiler did not install correctly. * Use generic target for x86_64_vX There is no way to provision a skylake/icelake/zen runner. They are all in the same pools under x86_64_v3 and x86_64_v4. * Find the intel compiler in the current spack installation * Remove SPACK_TARGET_ARCH * Fix virtual package index & use package.yaml for intel compiler * Use only one stack & pipeline per generic architecture * Fix yaml format * Cleanup typos * Include fix for ifx.cfg to get the right gcc toolchain when linking * [removeme] Adding timeout to debug hang in make (palace) * Revert "[removeme] Adding timeout to debug hang in make (palace)" This reverts commit fee8a01580489a4ea364368459e9353b46d0d7e2. * palace x86_64_v4 gets stuck when compiling try newer oneapi * Update comment * Use the latest container image * Update gcc_hashes to match new container * Use only one tag providing tags per extends call Also removed an unnecessary tag. * Move generic setup script out of individual stack * Cleanup from last commit * Enable checking signature for packages available on the container * Remove commented packages / Add comment for palace * Enable openmpi@5 which needs pmix>3 * don't look for intel compiler on aarch64
2024-03-21py-cig-pythia: add py-cig-pythia package to spack (#43294)downloadico1-0/+43