With this change spec["pkg"] searches only direct dependencies and transitive link/run
dependencies, ordered by depth. This avoids situations where we pick up unwanted
deps of build/test deps.
To reach those, you need to do spec["build_dep"]["pkg"] explicitly.
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
meson's `dependency` function often uses pkg-config to locate a dependency, and may even fall back to cmake. The former case is very common, and since packagers often forget to add the tiny pkgconfig package as a build dep, we do it for them.
Currently this is hardcoded to the same value as listed in the class
definition. If one ever overrides this attribute, such as:
```
packages:
openblas:
package_attributes:
libraries = [ 'libopenblaso64', ]
```
this patch will make sure that override also in the
`spec['openblas'].libs()` call. (Which happens in `hypre`, likely
others).
( see
https://spack.readthedocs.io/en/latest/packages_yaml.html#assigning-package-attributes
)
Thanks to becker33 for debugging help in Slack
* Name of zlib's library differs on Windows; also account for name
differing when building +shared
* `zlib`'s `.libs` implementation was searching for the runtime
libraries (the .dlls) and should be searching for link-time libs
* Kokkos Tools package.py: fix maintainers
* Kokkos Tools package.py: remove white space between first and second maintainer in comma-separated list
* [@spackbot] updating style on behalf of vlkale
* Correct maintainers syntax
Co-authored-by: Richard Berger <richard.berger@outlook.com>
---------
Co-authored-by: vlkale <vlkale@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Co-authored-by: Richard Berger <richard.berger@outlook.com>
* pandoramonitoring: add v3.6.0; pandorapfa: add v4.11.2
Remove variables that are not being used in pandorasdk. Use the C++ standard
from ROOT when possible and pass -Wno-error to override the -Werror that will
typically fail with a new standard. Add a cxxstd variant for pandorasdk
* Fix style
* Update var/spack/repos/builtin/packages/pandorasdk/package.py
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Fix style
---------
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* h5hut: Remove H5_USE_110_API for newer versions
* h5hut: style reformat and add maintainer
* h5hut: correct version syntax for <v2.x.x
* h5hut: Bump default version to 2.0.0rc7 and remove older rc candidates
* Update var/spack/repos/builtin/packages/h5hut/package.py
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
---------
Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
cray-mpich now has a rocm variant. You can use gtl_lib in the
flag_handler like so:
```python
def flag_handler(self, name, flags):
wrapper_flags = []
environment_flags = []
build_system_flags = []
if self.spec.satisfies("+rocm"):
if self.spec.satisfies("^cray-mpich"):
gtl_lib = self.spec["cray-mpich"].package.gtl_lib
build_system_flags.extend(gtl_lib.get(name) or [])
# hipcc is not wrapped, we need to pass the flags via the
# build system.
build_system_flags.extend(flags)
return (wrapper_flags, environment_flags, build_system_flags)
```
---------
Co-authored-by: Richard Berger <rberger@lanl.gov>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Co-authored-by: Richard Berger <richard.berger@outlook.com>
* postgresql: add version 17.2
* postgresql: install flex, bison and perl when building versions 17 and up
* postgresql: do not install perl by default when building versions 17 and up
This PR is effectively a breaking change extracted from #45189, which removes
support for spec["mpi"] if spec itself is openmpi / mpich that could provide mpi;
from the Spec instance we don't have any parent it provides it to,
hence it's a KeyError.
* g4vg: add develop version
* celeritas: add develop version
* Fix style
* REVERTME: move celeritas changes to another branch
* Get full repo
* remove unneeded variable
Currently, a few packages using kokkos rely on
kokkos itself monkeypatching its own spec to
provide some attribute.
In this commit we change this attribute to be
defined on the package, and never be monkeypatched.
Currently, when we setup the ASP problem for `clingo`, we don't take into account the configuration. This results in setting up ASP problems that are larger than necessary, with possibly redundant information, and higher concretization times.
This PR tries to improve things by adding an opt-in feature that computes the _possible dependencies_ of a solve taking also into account the current configuration, and avoids adding possible dependencies that we are certain can't be in the final solution.
The feature can be activated with:
```yaml
concretizer:
static_analysis: true
```
Examples of simple rules to discard dependencies are:
- Dependencies that are not buildable, and for which no binary is present (e.g. `cray-mpich` etc. on non Cray systems)
- Dependencies that are not for the current platform (e.g. `msmpi` on non Windows platforms)
- Conditional dependencies that cannot be activated, because of some user requirement (e.g. `cuda` etc. if the user requires `~cuda` in configuration)
- Virtual providers that cannot be used, because of a requirement on a virtual
The speed-up these rules seem to give depends on the use case at hand, but if the configuration is updated properly, they are noticeable.
Since in cases where there is no rule to exclude packages upfront, reuse is active, and this option is activated, it's possible to see some minor slow down, the feature has been added as opt-in, so it's turned off by default.