python-pillow/0001-PyModule_AddObject-fix-for-Python-3.10.patch
Robert-André Mauchin 7cd707c485
Add patch to fix the import error occurring with Python 3.10
Fix: rhbz#1904379

Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
2021-01-09 11:13:56 +01:00

105 lines
3.1 KiB
Diff

From cf190a3c2f166cf0a7dd004fee4b242ea29bf1f4 Mon Sep 17 00:00:00 2001
From: Andrew Murray <radarhere@users.noreply.github.com>
Date: Sat, 9 Jan 2021 11:33:26 +1100
Subject: [PATCH 2/2] PyModule_AddObject fix for Python 3.10
---
src/_imaging.c | 21 +++++++++++++++------
src/_webp.c | 14 ++++++++++----
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/src/_imaging.c b/src/_imaging.c
index a8741f6ad3..01dd22486e 100644
--- a/src/_imaging.c
+++ b/src/_imaging.c
@@ -4172,26 +4172,32 @@ setup_module(PyObject* m) {
}
#endif
+ PyObject *have_libjpegturbo;
#ifdef LIBJPEG_TURBO_VERSION
- PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", Py_True);
+ have_libjpegturbo = Py_True;
#define tostr1(a) #a
#define tostr(a) tostr1(a)
PyDict_SetItemString(d, "libjpeg_turbo_version", PyUnicode_FromString(tostr(LIBJPEG_TURBO_VERSION)));
#undef tostr
#undef tostr1
#else
- PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", Py_False);
-#endif
+ have_libjpegturbo = Py_False;
+ #endif
+ Py_INCREF(have_libjpegturbo);
+ PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", have_libjpegturbo);
+ PyObject *have_libimagequant;
#ifdef HAVE_LIBIMAGEQUANT
- PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", Py_True);
+ have_libimagequant = Py_True;
{
extern const char* ImagingImageQuantVersion(void);
PyDict_SetItemString(d, "imagequant_version", PyUnicode_FromString(ImagingImageQuantVersion()));
}
#else
- PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", Py_False);
+ have_libimagequant = Py_False;
#endif
+ Py_INCREF(have_libimagequant);
+ PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", have_libimagequant);
#ifdef HAVE_LIBZ
/* zip encoding strategies */
@@ -4222,11 +4228,14 @@ setup_module(PyObject* m) {
}
#endif
+ PyObject *have_xcb;
#ifdef HAVE_XCB
- PyModule_AddObject(m, "HAVE_XCB", Py_True);
+ have_xcb = Py_True;
#else
- PyModule_AddObject(m, "HAVE_XCB", Py_False);
+ have_xcb = Py_False;
#endif
+ Py_INCREF(have_xcb);
+ PyModule_AddObject(m, "HAVE_XCB", have_xcb);
PyDict_SetItemString(d, "PILLOW_VERSION", PyUnicode_FromString(version));
diff --git a/src/_webp.c b/src/_webp.c
index c7875fa368..4d51d99dfa 100644
--- a/src/_webp.c
+++ b/src/_webp.c
@@ -861,19 +861,25 @@ static PyMethodDef webpMethods[] =
};
void addMuxFlagToModule(PyObject* m) {
+ PyObject *have_webpmux;
#ifdef HAVE_WEBPMUX
- PyModule_AddObject(m, "HAVE_WEBPMUX", Py_True);
+ have_webpmux = Py_True;
#else
- PyModule_AddObject(m, "HAVE_WEBPMUX", Py_False);
+ have_webpmux = Py_False;
#endif
+ Py_INCREF(have_webpmux);
+ PyModule_AddObject(m, "HAVE_WEBPMUX", have_webpmux);
}
void addAnimFlagToModule(PyObject* m) {
+ PyObject *have_webpanim;
#ifdef HAVE_WEBPANIM
- PyModule_AddObject(m, "HAVE_WEBPANIM", Py_True);
+ have_webpanim = Py_True;
#else
- PyModule_AddObject(m, "HAVE_WEBPANIM", Py_False);
+ have_webpanim = Py_False;
#endif
+ Py_INCREF(have_webpanim);
+ PyModule_AddObject(m, "HAVE_WEBPANIM", have_webpanim);
}
void addTransparencyFlagToModule(PyObject* m) {