summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/py-protobuf/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/py-protobuf/package.py')
-rw-r--r--var/spack/repos/builtin/packages/py-protobuf/package.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py
index dd953af7d0..28b99194be 100644
--- a/var/spack/repos/builtin/packages/py-protobuf/package.py
+++ b/var/spack/repos/builtin/packages/py-protobuf/package.py
@@ -19,7 +19,12 @@ class PyProtobuf(PythonPackage):
variant("cpp", default=False, description="Enable the cpp implementation")
- version("3.20.1", sha256="adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9")
+ version("4.21.5", sha256="eb1106e87e095628e96884a877a51cdb90087106ee693925ec0a300468a9be3a")
+ version(
+ "3.20.1",
+ sha256="adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9",
+ preferred=True,
+ )
version("3.20.0", sha256="71b2c3d1cd26ed1ec7c8196834143258b2ad7f444efff26fdc366c6f5e752702")
version("3.19.4", sha256="9df0c10adf3e83015ced42a9a7bd64e13d06c4cf45c340d2c63020ea04499d0a")
version("3.19.3", sha256="d975a6314fbf5c524d4981e24294739216b5fb81ef3c14b86fb4b045d6690907")
@@ -71,7 +76,20 @@ class PyProtobuf(PythonPackage):
depends_on("py-six@1.9:", when="@3:", type=("build", "run"))
depends_on("py-ordereddict", when="@3: ^python@:2", type=("build", "run"))
depends_on("py-unittest2", when="@3: ^python@:2", type=("build", "run"))
- depends_on("protobuf", when="+cpp")
+
+ # Setup dependencies for protobuf to use the same minor version as py-protobuf
+ # Handle mapping the 4.x release to the protobuf 3.x releases
+ for ver in list(range(21, 22)):
+ depends_on("protobuf@3." + str(ver), when="+cpp @4." + str(ver))
+ # Handle the 3.x series releases
+ for ver in list(range(1, 8)) + list(range(9, 21)):
+ depends_on("protobuf@3." + str(ver), when="+cpp @3." + str(ver))
+ # Handle the 2.x series releases
+ for ver in list(range(3, 7)):
+ if ver == 5:
+ depends_on("protobuf@2." + str(ver), when="+cpp @2." + str(ver))
+ else:
+ conflicts("+cpp", when="@2." + str(ver))
@property
def build_directory(self):