summaryrefslogtreecommitdiff
path: root/var/spack
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2023-10-06 10:24:21 +0200
committerGitHub <noreply@github.com>2023-10-06 10:24:21 +0200
commite20c05fcdfc7a9ad995956bfee269e123860288f (patch)
treebb94c72fce83126116e0bcd8561a7c3b560ecc3c /var/spack
parent36183eac408539e84323fe5ec514d7ae83e4bca6 (diff)
downloadspack-e20c05fcdfc7a9ad995956bfee269e123860288f.tar.gz
spack-e20c05fcdfc7a9ad995956bfee269e123860288f.tar.bz2
spack-e20c05fcdfc7a9ad995956bfee269e123860288f.tar.xz
spack-e20c05fcdfc7a9ad995956bfee269e123860288f.zip
Make "minimal" the default duplicate strategy (#39621)
* Allow branching out of the "generic build" unification set For cases like the one in https://github.com/spack/spack/pull/39661 we need to relax rules on unification sets. The issue is that, right now, nodes in the "generic build" unification set are unified together with their build dependencies. This was done out of caution to avoid the risk of circular dependencies, which would ultimately cause a very slow solve. For build-tools like Cython, however, the build dependencies is masked by a long chain of "build, run" dependencies that belong in the "generic build" unification space. To allow splitting on cases like this, we relax the rule disallowing branching out of the "generic build" unification set. * Fix issue with pure build virtual dependencies Pure build virtual dependencies were not accounted properly in the list of possible virtuals. This caused some facts connecting virtuals to the corresponding providers to not be emitted, and in the end lead to unsat problems. * Fixed a few issues in packages py-gevent: restore dependency on py-cython@3 jsoncpp: fix typo in build dependency ecp-data-vis-sdk: update spack.yaml and cmake recipe py-statsmodels: add v0.13.5 * Make dependency on "blt" of type "build"
Diffstat (limited to 'var/spack')
-rw-r--r--var/spack/repos/builtin/packages/camp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jsoncpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mgard/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gevent/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-statsmodels/package.py12
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py2
-rw-r--r--var/spack/repos/builtin/packages/umpire/package.py2
-rw-r--r--var/spack/repos/duplicates.test/packages/pkg-config/package.py16
-rw-r--r--var/spack/repos/duplicates.test/packages/virtual-build/package.py16
10 files changed, 47 insertions, 12 deletions
diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py
index 8d7b4f62b1..a1bdc830d3 100644
--- a/var/spack/repos/builtin/packages/camp/package.py
+++ b/var/spack/repos/builtin/packages/camp/package.py
@@ -53,7 +53,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
depends_on("cub", when="+cuda")
- depends_on("blt")
+ depends_on("blt", type="build")
conflicts("^blt@:0.3.6", when="+rocm")
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index c4c61aee82..796eb4c397 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -239,7 +239,7 @@ class Cmake(Package):
depends_on("libuv@1.10.0:1.10", when="@3.11.0:3.11")
depends_on("libuv@1.10.0:", when="@3.12.0:")
depends_on("rhash", when="@3.8.0:")
- depends_on("jsoncpp", when="@3.2:")
+ depends_on("jsoncpp build_system=meson", when="@3.2:")
depends_on("ncurses", when="+ncurses")
diff --git a/var/spack/repos/builtin/packages/jsoncpp/package.py b/var/spack/repos/builtin/packages/jsoncpp/package.py
index 55c2f22a02..bd20e2b22e 100644
--- a/var/spack/repos/builtin/packages/jsoncpp/package.py
+++ b/var/spack/repos/builtin/packages/jsoncpp/package.py
@@ -47,7 +47,7 @@ class Jsoncpp(CMakePackage, MesonPackage):
with when("build_system=cmake"):
depends_on("cmake@3.1:", type="build")
- depends_on("cmake@1.9:", when="@1.9:", type="build")
+ depends_on("cmake@3.9:", when="@1.9:", type="build")
with when("build_system=meson"):
depends_on("meson@0.49.0:", type="build")
diff --git a/var/spack/repos/builtin/packages/mgard/package.py b/var/spack/repos/builtin/packages/mgard/package.py
index ca9f2f46e4..b58f4c0bba 100644
--- a/var/spack/repos/builtin/packages/mgard/package.py
+++ b/var/spack/repos/builtin/packages/mgard/package.py
@@ -50,7 +50,7 @@ class Mgard(CMakePackage, CudaPackage):
depends_on("libarchive", when="@2021-11-12:")
depends_on("tclap", when="@2021-11-12")
depends_on("yaml-cpp", when="@2021-11-12:")
- depends_on("cmake@3.19:")
+ depends_on("cmake@3.19:", type="build")
depends_on("nvcomp@2.2.0:", when="@2022-11-18:+cuda")
depends_on("nvcomp@2.0.2", when="@:2021-11-12+cuda")
conflicts("cuda_arch=none", when="+cuda")
diff --git a/var/spack/repos/builtin/packages/py-gevent/package.py b/var/spack/repos/builtin/packages/py-gevent/package.py
index b684829f54..c41b815ef2 100644
--- a/var/spack/repos/builtin/packages/py-gevent/package.py
+++ b/var/spack/repos/builtin/packages/py-gevent/package.py
@@ -24,8 +24,7 @@ class PyGevent(PythonPackage):
depends_on("py-setuptools@40.8:", when="@20.5.1:", type=("build", "run"))
depends_on("py-setuptools@40.8:", when="@1.5:", type="build")
depends_on("py-setuptools@24.2:", when="@:1.4", type="build")
- # TODO: relax this until we support separate concretization of build deps by default
- # depends_on("py-cython@3:", when="@20.5.1:", type="build")
+ depends_on("py-cython@3:", when="@20.5.1:", type="build")
depends_on("py-cython@0.29.14:", when="@1.5:", type="build")
depends_on("py-cffi@1.12.3:", type=("build", "run"))
depends_on("py-greenlet@3:", when="@23.7: ^python@3.12:", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-statsmodels/package.py b/var/spack/repos/builtin/packages/py-statsmodels/package.py
index c99901d9ae..36968986a3 100644
--- a/var/spack/repos/builtin/packages/py-statsmodels/package.py
+++ b/var/spack/repos/builtin/packages/py-statsmodels/package.py
@@ -14,6 +14,7 @@ class PyStatsmodels(PythonPackage):
homepage = "https://www.statsmodels.org"
pypi = "statsmodels/statsmodels-0.8.0.tar.gz"
+ version("0.13.5", sha256="593526acae1c0fda0ea6c48439f67c3943094c542fe769f8b90fe9e6c6cc4871")
version("0.13.2", sha256="77dc292c9939c036a476f1770f9d08976b05437daa229928da73231147cde7d4")
version("0.13.1", sha256="006ec8d896d238873af8178d5475203844f2c391194ed8d42ddac37f5ff77a69")
version("0.13.0", sha256="f2efc02011b7240a9e851acd76ab81150a07d35c97021cb0517887539a328f8a")
@@ -25,12 +26,15 @@ class PyStatsmodels(PythonPackage):
depends_on("python@2.7:2.8,3.4:", when="@0.10.1:", type=("build", "link", "run"))
depends_on("python@3.6:", when="@0.12.1:", type=("build", "link", "run"))
- # according to https://www.statsmodels.org/dev/install.html earlier versions
- # might work.
- depends_on("py-setuptools@0.6c5:", type="build")
- depends_on("py-cython@0.29:", type="build")
+ # according to https://www.statsmodels.org/dev/install.html earlier versions might work.
+ depends_on("py-setuptools", type="build")
+ depends_on("py-setuptools@59.2.0:", type="build", when="@0.13.5:")
+
+ # https://github.com/statsmodels/statsmodels/blob/01b19d7d111b29c183f620ff0a949ef6391ff8ee/pyproject.toml
+ depends_on("py-cython@0", type="build")
depends_on("py-cython@0.29.14:", type="build", when="@0.12.0:")
depends_on("py-cython@0.29.22:", type="build", when="@0.13.0:")
+ depends_on("py-cython@0.29.32:", type="build", when="@0.13.5:")
# patsy@0.5.1 works around a Python change
# https://github.com/statsmodels/statsmodels/issues/5343 and
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index 88505b3a81..cc1ede76be 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -137,7 +137,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on("cmake@:3.20", when="@:2022.03+rocm", type="build")
depends_on("cmake@3.23:", when="@2022.10:+rocm", type="build")
- depends_on("cmake@3.14:", when="@2022.03.0:")
+ depends_on("cmake@3.14:", when="@2022.03.0:", type="build")
depends_on("llvm-openmp", when="+openmp %apple-clang")
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index 51f0c034b2..c64bfdf256 100644
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -168,7 +168,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on("cmake@3.8:", type="build")
depends_on("cmake@3.9:", when="+cuda", type="build")
- depends_on("cmake@3.14:", when="@2022.03.0:")
+ depends_on("cmake@3.14:", when="@2022.03.0:", type="build")
depends_on("blt@0.5.2:", type="build", when="@2022.10.0:")
depends_on("blt@0.5.0:", type="build", when="@2022.03.0:")
diff --git a/var/spack/repos/duplicates.test/packages/pkg-config/package.py b/var/spack/repos/duplicates.test/packages/pkg-config/package.py
new file mode 100644
index 0000000000..eb7b84b88f
--- /dev/null
+++ b/var/spack/repos/duplicates.test/packages/pkg-config/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.package import *
+
+
+class PkgConfig(Package):
+ """A package providing a virtual, which is frequently used as a pure build dependency."""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/tdep-1.0.tar.gz"
+
+ version("1.0.0", md5="0123456789abcdef0123456789abcdef")
+
+ provides("pkgconfig")
diff --git a/var/spack/repos/duplicates.test/packages/virtual-build/package.py b/var/spack/repos/duplicates.test/packages/virtual-build/package.py
new file mode 100644
index 0000000000..17fc60955d
--- /dev/null
+++ b/var/spack/repos/duplicates.test/packages/virtual-build/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.package import *
+
+
+class VirtualBuild(Package):
+ """A package that has a pure build virtual dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/tdep-1.0.tar.gz"
+
+ version("1.0.0", md5="0123456789abcdef0123456789abcdef")
+
+ depends_on("pkgconfig", type="build")