New patch release SLEPc 3.18.3#36401
Conversation
adamjstewart
left a comment
There was a problem hiding this comment.
Actually, I believe this is missing:
depends_on("py-cython@0.24:", type="build")
In the previous patch release we added this Do you mean I should remove the |
|
Either remove |
|
@joseeroman similar issue [and change] at #36406 |
|
@balay this happens also in petsc4py. From which version is cython 0.24 needed? |
|
Ah, thanks. Will change. |
bca2df0 to
66328d3
Compare
tldahlgren
left a comment
There was a problem hiding this comment.
Confirmed the new sha256.
|
@joseeroman here are the changes from #36406 that work with py-slepc4py diff --git a/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch b/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch
index fbe430af1b..be5b2569aa 100644
--- a/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch
+++ b/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch
@@ -1,7 +1,7 @@
diff --git a/src/binding/slepc4py/conf/baseconf.py b/src/binding/slepc4py/conf/baseconf.py
index b0707a65a..44ba8f194 100644
---- a/src/binding/slepc4py/conf/baseconf.py
-+++ b/src/binding/slepc4py/conf/baseconf.py
+--- a/src/binding/slepc4py/conf/confpetsc.py
++++ b/src/binding/slepc4py/conf/confpetsc.py
@@ -213,7 +213,7 @@ class PetscConfig:
ldshared = getenv('LDSHARED', ldshared)
ldflags = getenv('LDFLAGS', cflags + ' ' + (ldflags or ''))
diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py
index 293242612f..3a7924da48 100644
--- a/var/spack/repos/builtin/packages/py-slepc4py/package.py
+++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py
@@ -37,8 +37,8 @@ class PySlepc4py(PythonPackage):
patch("ldshared.patch", when="@:99")
patch("ldshared-dev.patch", when="@main")
- depends_on("py-cython@0.29.32:", when="@3.19: ^python@3.11:", type="build")
- depends_on("py-cython@0.24:", when="@3.19:", type="build")
+ depends_on("py-cython@0.29.32:", when="^python@3.11:", type="build")
+ depends_on("py-cython@0.24:", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-petsc4py", type=("build", "run"))
@@ -67,3 +67,8 @@ def build_directory(self):
return os.path.join(self.stage.source_path, "src", "binding", "slepc4py")
else:
return self.stage.source_path
+
+ @run_before("install")
+ def cythonize(self):
+ with working_dir(self.build_directory):
+ python(join_path("conf", "cythonize.py"))Additionally: diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py
index a23002aac2..9c2ce75f8c 100644
--- a/var/spack/repos/builtin/packages/py-slepc4py/package.py
+++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py
@@ -40,6 +40,7 @@ class PySlepc4py(PythonPackage):
depends_on("py-setuptools", type="build")
depends_on("py-petsc4py", type=("build", "run"))
+ depends_on("py-petsc4py@main", when="@main", type=("build", "run"))
depends_on("py-petsc4py@3.18.0:3.18", when="@3.18.0:3.18", type=("build", "run"))
depends_on("py-petsc4py@3.17.0:3.17", when="@3.17.0:3.17", type=("build", "run"))
depends_on("py-petsc4py@3.16.0:3.16", when="@3.16.0:3.16", type=("build", "run"))
@@ -49,6 +50,7 @@ class PySlepc4py(PythonPackage):
depends_on("py-petsc4py@3.11.0:3.11", when="@3.11.0:3.11", type=("build", "run"))
depends_on("slepc")
+ depends_on("slepc@main", when="@main")
depends_on("slepc@3.18.0:3.18", when="@3.18.0:3.18")
depends_on("slepc@3.17.0:3.17", when="@3.17.0:3.17")
depends_on("slepc@3.16.0:3.16", when="@3.16.0:3.16") |
66328d3 to
967439e
Compare
|
Pushed. Thanks. |
Thanks-To: Satish Balay
967439e to
85ec5a3
Compare
| @@ -36,10 +37,12 @@ class PySlepc4py(PythonPackage): | |||
| patch("ldshared.patch", when="@:99") | |||
| patch("ldshared-dev.patch", when="@main") | |||
There was a problem hiding this comment.
Out of curiosity, where are these patches needed, and is there any way to solve the issue in slepc/petsc main?
There was a problem hiding this comment.
I think the code attempts to handle certain corner cases [perhaps with intel compilers?]. And this breaks with spack - as it changes compilers underneath - hence this fix to skip that code during spack build.
@dalcinl I don' think this change will affect other usages - so perhaps ok to add to petsc/slepc mainline?
There was a problem hiding this comment.
I feel bad hardcoding things in petsc/slepc just for Spack (although maybe Spack is one of the more popular ways of installing things). I do frequently see patches specific to Homebrew, but those also break things for Spack. Maybe a more general solution that checks if the compiler is a symlink or something.
There was a problem hiding this comment.
I don't have strong opinions about this. Most of these hideous hacks were done just to workaround limitations of Python's distutils.
There was a problem hiding this comment.
With the change in file names [that was reflected in one of the changes in this PR] - I think we'll need another patch file added to spack for 3.19. So if we can add this to petsc/slepc mainline - then we can avoid adding additional copy of this patch to spack.
I'll create a MR for petsc
No description provided.