summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-11-06tau: add v2.34 (#47471)eugeneswalker1-0/+1
2024-11-06Fix `spack -c <override>` when env active (#47403)Massimiliano Culpo6-46/+94
Set command line scopes last in _main, so they are higher scopes Restore the global configuration in a spawned process by inspecting the result of ctx.get_start_method() Add the ability to pass a mp.context to PackageInstallContext. Add shell-tests to check overriding the configuration: - Using both -c and -C from command line - With and without an environment active
2024-11-06rivet: add through v4.0.2 (incl yoda: add through v2.0.2) (#47383)Wouter Deconinck3-7/+32
* yoda: add v2.0.1, v2.0.2 * rivet: add v3.1.9, v3.1.10, v4.0.0, v4.0.1, v4.0.2 * rivet: yoda@:1 when @:3; conflicts hepmc3@3.3.0 when @:4.0.0 * rivet: fix style * rivet: hepmc=2 only when @:3; use libs.directories[0] * hepmc3: def libs * [@spackbot] updating style on behalf of wdconinc --------- Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
2024-11-06Fix various bootstrap/concretizer import issues (#47467)Harmen Stoppels4-9/+10
2024-11-06llnl.util.filesystem.find: restore old error handling (#47463)Harmen Stoppels1-20/+11
2024-11-06edm4hep: Add json variant for newer versions (#47180)Thomas Madlener1-1/+11
* edm4hep: Add json variant for newer versions Explicit option has been added to EDM4hep so we now expose it via a variant as well. We keep the old behavior where we unconditionally depended on nlohmann-json and implicitly built JSON support if we could detect it cmake stage * Fix condition statement in when clause * Use open version range to avoid fixing to single version --------- Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
2024-11-06Feature: Allow variants to propagate if not available in source pkg (#42931)Richarda Butler15-35/+413
Variants can now be propagated from a dependent package to (transitive) dependencies, even if the source or transitive dependencies have the propagated variants. For example, here `zlib` doesn't have a `guile` variant, but `gmake` does: ``` $ spack spec zlib++guile - zlib@1.3%gcc@12.2.0+optimize+pic+shared build_system=makefile arch=linux-rhel8-broadwell - ^gcc-runtime@12.2.0%gcc@12.2.0 build_system=generic arch=linux-rhel8-broadwell - ^gmake@4.4.1%gcc@12.2.0+guile build_system=generic arch=linux-rhel8-broadwell ``` Adding this property has some strange ramifications for `satisfies()`. In particular: * The abstract specs `pkg++variant` and `pkg+variant` do not intersect, because `+variant` implies that `pkg` *has* the variant, but `++variant` does not. * This means that `spec.satisfies("++foo")` is `True` if: * for concrete specs: `spec` and its dependencies all have `foo` set if it exists * for abstract specs: no dependency of `spec` has `~foo` (i.e. no dependency contradicts `++foo`). * This also means that `Spec("++foo").satisfies("+foo")` is `False` -- we only know after concretization. The `satisfies()` semantics may be surprising, but this is the cost of introducing non-subset semantics (which are more useful than proper subsets here). - [x] Change checks for variants - [x] Resolve conflicts - [x] Add tests - [x] Add documentation --------- Co-authored-by: Gregory Becker <becker33@llnl.gov> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-11-05masa: add versions and update dependencies (#47447)Jon Rood1-8/+15
* masa: add versions * masa: update dependencies
2024-11-05Fix filter_compiler_wrappers with mpi (#47448)wspear1-2/+8
2024-11-05omega-h: fix versioning and cuda compat (#47433)Harmen Stoppels6-33/+22
2024-11-05cgal: add v6.0.1 (#47285)Martin Lang2-2/+4
2024-11-05paraview: add forward compat bound with cuda (#47430)Harmen Stoppels1-0/+3
2024-11-05libc.py: detect glibc also in chinese locale (#47434)Harmen Stoppels1-6/+18
2024-11-05Revert "Ci generate on change (#47318)" (#47431)Harmen Stoppels2-109/+27
This reverts commit 1462c357619fedf7354bc60f9178b2199258ebd2.
2024-11-05Add Adiak v0.4.1 (#47429)David Boehme1-1/+2
2024-11-05extrae: fix build with gcc@14 (#47407)Mosè Giordano1-0/+12
2024-11-05py-torchaudio, py-torchtext: rpath fixup (#47404)Harmen Stoppels2-0/+40
* py-torchaudio, py-torchtext: rpath fixup also add missing dependency on Spack ffmpeg to torchaudio. * py-torchaudio: add torio rpath
2024-11-05py-tensorflow: add v2.18.0 (#47211)Adam J. Stewart2-42/+57
2024-11-05py-python-ptrace: missing forward compat bound (#47401)Harmen Stoppels1-1/+5
2024-11-05spack.concretize: add type-hints, remove kwargs (#47382)Massimiliano Culpo5-124/+52
Also remove find_spec, which was used by the old concretizer. Currently, it seems to be used only in tests.
2024-11-04openmpi: add 4.1.7 (#47427)Howard Pritchard1-0/+3
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2024-11-04sst-dumpi: fix homepage (#47420)Wouter Deconinck1-1/+1
2024-11-04quicksilver: fix homepage (#47419)Wouter Deconinck1-1/+1
2024-11-04py-eventlet: fix url (#47418)Wouter Deconinck1-2/+2
* py-eventlet: fix url * py-eventlet: fix checksum
2024-11-04py-configspace: fix homepage (#47417)Wouter Deconinck1-1/+1
2024-11-04extrae: add more versions (#47408)Mosè Giordano1-0/+9
2024-11-04extrae: fix typo (#47406)Mosè Giordano1-1/+1
2024-11-04pythia8: Include patch for C++20 / Clang (#47400)Paul Gessinger2-7/+47
* pythia8: Include patch for C++20 / Clang Pythia8 vendors some FJCore sources that are as of Pythia8 312 incompatible with C++20 on clang. This adds a patch that makes it compatible in these scenarios * Add issue link * rename setup_cxxstd function * Remove an accidental printout * Apply patch to all compilers, add lower bound
2024-11-04prometheus-cpp: added package prometheus-cpp (#47384)Matthieu Dorier1-0/+30
* prometheus-cpp: added package prometheus-cpp * prometheus-cpp: edited PR for style
2024-11-04flux: new package (#47392)Pranav Sivaraman1-0/+39
2024-11-04added g2c-2.0.0 (#47399)Edward Hartnett1-0/+1
2024-11-04dyninst: patch broken builds for 10.0.0:12.2.0 (#47339)Tim Haines2-0/+16
* dyninst: patch broken builds for 10.0.0:12.3.0 * Only apply before 12.3.0
2024-11-04libxc: add v7.0.0 (#47263)Paul R. C. Kent1-0/+1
2024-11-04fix the error libroctx64.so.o not found when executing MIOpenDriver (#47196)Sreenivasa Murthy Kolam4-41/+59
2024-11-04google-cloud-cpp: add v2.29.0, v2.30.0 (#47146)Darren Bolduc1-3/+11
* google-cloud-cpp: add v2.29.0; fix cxx-std versions * d'oh, single value for the variant
2024-11-04filesystem.py: add `max_depth` argument to `find` (#41945)Peter Scheibel4-77/+292
* `find(..., max_depth=...)` can be used to control how many directories at most to descend into below the starting point * `find` now enters every unique (symlinked) directory once at the lowest depth * `find` is now repeatable: it traverses the directory tree in a deterministic order
2024-11-04cc: parse RPATHs when in `ld` modeTodd Gamblin2-21/+85
In the pure `ld` case, we weren't actually parsing `RPATH` arguments separately as we do for `ccld`. Fix this by adding *another* nested case statement for raw `RPATH` parsing. There are now 3 places where we deal with `-rpath` and friends, but I don't see a great way to unify them, as `-Wl,`, `-Xlinker`, and raw `-rpath` arguments are all ever so slightly different. Also, this Fixes ordering of assertions to make `pytest` diffs more intelligible. The meaning of `+` and `-` in diffs changed in `pytest` 6.0 and the "preferred" order for assertions became `assert actual == expected` instead of the other way around. Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-11-04`cc`: simplify ordered list handlingTodd Gamblin1-114/+65
`cc` divides most paths up into system paths, spack managed paths, and other paths. This gets really repetitive and makes the code hard to read. Simplify the script by adding some functions to do most of the redundant work for us. Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-11-04Times spec building and timing to public concretizer API (#47310)John Gouwar1-4/+15
This PR has two small contributions: - It adds another phase to the timer for concrectization, "construct_specs", to actually see the time the concretizer spends interpreting the `clingo` output to build the Python object for a concretized spec. - It adds the method `Solver.solve_with_stats` to expose the timers that were already in the concretizer to the public solver API. `Solver.solve` just becomes a special case of `Solver.solve_with_stats` that throws away the timing output (which is what it was already doing). These changes will make it easier to benchmark concretizer performance and provide a more complete picture of the time spent in the concretizer by including the time spent interpreting clingo output.
2024-11-04papi: add forward compat bound for cuda (#47409)Harmen Stoppels1-0/+2
2024-11-04geant4-data: symlink only specific data dirs (#47367)Stephen Nicholas Swatman16-37/+113
Currently, the `geant4-data` spec creates symlink to all of its dependencies, and it does so by globbing their `share/` directories. This works very well for the way Spack installs these, but it doesn't work for anybody wanting to use e.g. the Geant4 data on CVMFS. See pull request #47298. This commit changes the way the `geant4-data` spec works. It no longer blindly globs directories and makes symlinks, but it asks its dependencies specifically for the name of their data directory. This should allow us to use Spack to use the CVMFS installations as externals.
2024-11-04boost: require +icu when +locale (#47396)Harmen Stoppels1-0/+1
2024-11-04acts dependencies: new versions as of 2024/11/01 (#47366)Stephen Nicholas Swatman3-1/+5
* acts dependencies: new versions as of 2024/11/01 Includes new versions of ACTS itself, Detray, and Vecmem. * Bind TBB
2024-11-04zabbix: add v5.0.44, v6.0.34, v7.0.4 (fix CVEs) (#47001)Wouter Deconinck2-11/+44
* zabbix: add v5.0.44, v6.0.34, v7.0.4 (fix CVEs) * [@spackbot] updating style on behalf of wdconinc * zabbix: use f-string * zabbix: fix f-string quoting * zabbix: use mysql-client * @wdconic, this fixes the mysql client virtual for me --------- Co-authored-by: wdconinc <wdconinc@users.noreply.github.com> Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-11-04packaging_guide.rst: explain forward and backward compat before the less ↵Harmen Stoppels1-28/+63
common cases (#47402) The idea is to go from most to least used: backward compat -> forward compat -> pinning on major or major.minor version -> pinning specific, concrete versions. Further, the following ```python # backward compatibility with Python depends_on("python@3.8:") depends_on("python@3.9:", when="@1.2:") depends_on("python@3.10:", when="@1.4:") # forward compatibility with Python depends_on("python@:3.12", when="@:1.10") depends_on("python@:3.13", when="@:1.12") depends_on("python@:3.14") ``` is better than disjoint when ranges causing repetition of the rules on dependencies, and requiring frequent editing of existing lines after new releases are done: ```python depends_on("python@3.8:3.12", when="@:1.1") depends_on("python@3.9:3.12", when="@1.2:1.3") depends_on("python@3.10:3.12", when="@1.4:1.10") depends_on("python@3.10:3.13", when="@1.11:1.12") depends_on("python@3.10:3.14", when="@1.13:")
2024-11-04vep-cache: new package (#44523)Teague Sterling1-0/+151
* py-uvloop: add v3.8.14, v3.9.15, v3.10.3 and dependencies * rollback * vep: add v110,v111,v112 * vep-cache: add v110,v111,v112 * Cleanup * Reorganizigng Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * Update package.py * Update package.py * [@spackbot] updating style on behalf of teaguesterling * Update package.py * Update package.py * Update package.py * [@spackbot] updating style on behalf of teaguesterling * Update package.py * [@spackbot] updating style on behalf of teaguesterling * Fix scoping and syntax issues Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * fix styles Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * fix variants * fixing up variant issues and cleaning up resource code Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * fixing unused imports Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * Apply suggestions from code review Co-authored-by: Arne Becker <101113822+EbiArnie@users.noreply.github.com> * fixing vep dependencies Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * Fixing resources Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * Fixing issue where resources are not downloaded Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * vep-cache fixing downloads Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * defaulting to using VEP installer Signed-off-by: Teague Sterling <teaguesterling@gmail.com> * Removing resource-based cache installation and simplifying package. Resources without checksums doesn't work (anymore?) and calculating them with be difficult Signed-off-by: Teague Sterling <teaguesterling@gmail.com> --------- Signed-off-by: Teague Sterling <teaguesterling@gmail.com> Co-authored-by: Arne Becker <101113822+EbiArnie@users.noreply.github.com>
2024-11-04tcsh: add missing libxcrypt dependency (#47398)Harmen Stoppels1-0/+1
2024-11-04krb5: disable missing keyutils dependency (#47397)Harmen Stoppels1-1/+1
2024-11-04libssh2: fix crypto (#47393)Harmen Stoppels1-9/+22
2024-11-04bigdft-futile: fix compilation for @1.9.5~mpi (#47292)Martin Lang1-0/+8
When compiled without MPI support, a fake mpi header is autogenerated during configure/build. The header is missing one symbol in version 1.9.5. The problem has since been fixed upstream. A simular problem does also occur for 1.9.4. Unfortunately, the patch does not work for 1.9.4 and I also don't know if further fixes would be required for 1.9.4. Therefore, only the newest version 1.9.5 is patched.