summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2024-10-04 13:26:15 +0200
committerGitHub <noreply@github.com>2024-10-04 13:26:15 +0200
commitf17e76e9d8d8252245eeefc7b85b6fa0433837b8 (patch)
tree6275e40492606f747b7d88c0ec57b4b2acc9de01
parent905e7b9b4559691fb1fdde3340f33ef0214e60dc (diff)
downloadspack-f17e76e9d8d8252245eeefc7b85b6fa0433837b8.tar.gz
spack-f17e76e9d8d8252245eeefc7b85b6fa0433837b8.tar.bz2
spack-f17e76e9d8d8252245eeefc7b85b6fa0433837b8.tar.xz
spack-f17e76e9d8d8252245eeefc7b85b6fa0433837b8.zip
clingo: fix build with Python 3.13+ (#46775)
Python 3.9 deprecated `PyEval_InitThreads` and kept it as a no-op, and Python 3.13 deleted the function. The patch removes calls to it.
-rw-r--r--var/spack/repos/builtin/packages/clingo/PyEval_InitThreads.patch12
-rw-r--r--var/spack/repos/builtin/packages/clingo/package.py1
2 files changed, 13 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/clingo/PyEval_InitThreads.patch b/var/spack/repos/builtin/packages/clingo/PyEval_InitThreads.patch
new file mode 100644
index 0000000000..61e59d1984
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clingo/PyEval_InitThreads.patch
@@ -0,0 +1,12 @@
+diff --git a/libpyclingo/pyclingo.cc b/libpyclingo/pyclingo.cc
+index ec4a33c6..ee903cd0 100644
+--- a/libpyclingo/pyclingo.cc
++++ b/libpyclingo/pyclingo.cc
+@@ -10463,7 +10463,6 @@ void addEmptyClass(Reference module, char const *name) {
+
+ PyObject *initclingo_() {
+ PY_TRY {
+- if (!PyEval_ThreadsInitialized()) { PyEval_InitThreads(); }
+ #if PY_MAJOR_VERSION >= 3
+ Object m = PyModule_Create(&clingoModule);
+ #else
diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py
index 10fdb23591..cd73ed647d 100644
--- a/var/spack/repos/builtin/packages/clingo/package.py
+++ b/var/spack/repos/builtin/packages/clingo/package.py
@@ -74,6 +74,7 @@ class Clingo(CMakePackage):
patch("size-t.patch", when="%msvc")
patch("vs2022.patch", when="%msvc@19.30:")
patch("clingo_msc_1938_native_handle.patch", when="@:5.7.0 %msvc@19.38:")
+ patch("PyEval_InitThreads.patch", when="@spack,5.3:5.4 ^python@3.9:")
def patch(self):
# Doxygen is optional but can't be disabled with a -D, so patch