summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2021-06-04 12:21:30 +0100
committerMarek Szuba <marecki@gentoo.org>2021-06-04 12:23:44 +0100
commit7efabb81f9bbfc7ea149285949a27400ea6db736 (patch)
tree172a3faa3c9471158859ea3287ed0fc33f8dcd04 /media-gfx/zbar
parentmedia-gfx/zbar: drop 0.23-r1 (diff)
downloadgentoo-7efabb81f9bbfc7ea149285949a27400ea6db736.tar.gz
gentoo-7efabb81f9bbfc7ea149285949a27400ea6db736.tar.bz2
gentoo-7efabb81f9bbfc7ea149285949a27400ea6db736.zip
media-gfx/zbar: fix python3_9 compilation failure
Backported upstream fix. Tested against python3_8 and python3_9, compiles fine against both. Reported-by: PhobosK <phobosk@fastmail.fm> Closes: https://bugs.gentoo.org/788703 Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'media-gfx/zbar')
-rw-r--r--media-gfx/zbar/files/zbar-0.23.1_python_tp_print.patch55
-rw-r--r--media-gfx/zbar/zbar-0.23.1.ebuild1
2 files changed, 56 insertions, 0 deletions
diff --git a/media-gfx/zbar/files/zbar-0.23.1_python_tp_print.patch b/media-gfx/zbar/files/zbar-0.23.1_python_tp_print.patch
new file mode 100644
index 000000000000..8d4d821426d2
--- /dev/null
+++ b/media-gfx/zbar/files/zbar-0.23.1_python_tp_print.patch
@@ -0,0 +1,55 @@
+From 938d39716488b545b92c28f48acc94a7b8fc9138 Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
+Date: Tue, 28 Jul 2020 10:27:30 +0200
+Subject: [PATCH] python: enum: make it compatible with Python 3.9
+
+As reported by:
+ https://github.com/mchehab/zbar/issues/92
+
+python bindings don't build with Python 3.9, because it is
+using tp_print, which has been silently ignored since Python
+3.0, according with[1]:
+
+ "The tp_print slot of PyTypeObject has been removed.
+ It was used for printing objects to files in Python 2.7
+ and before.
+ Since Python 3.0, it has been ignored and unused."
+
+[1] https://docs.python.org/3.9/whatsnew/3.9.html#id3
+
+Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
+---
+ python/enum.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/python/enum.c b/python/enum.c
+index a1135531..dfe1b1ef 100644
+--- a/python/enum.c
++++ b/python/enum.c
+@@ -76,6 +76,8 @@ enumitem_str (zbarEnumItem *self)
+ return(self->name);
+ }
+
++#if PY_MAJOR_VERSION < 3
++/* tp_print was dropped on Python 3.9 */
+ static int
+ enumitem_print (zbarEnumItem *self,
+ FILE *fp,
+@@ -83,6 +85,7 @@ enumitem_print (zbarEnumItem *self,
+ {
+ return(self->name->ob_type->tp_print(self->name, fp, flags));
+ }
++#endif
+
+ static PyObject*
+ enumitem_repr (zbarEnumItem *self)
+@@ -115,7 +118,9 @@ PyTypeObject zbarEnumItem_Type = {
+ .tp_new = (newfunc)enumitem_new,
+ .tp_dealloc = (destructor)enumitem_dealloc,
+ .tp_str = (reprfunc)enumitem_str,
++#if PY_MAJOR_VERSION < 3
+ .tp_print = (printfunc)enumitem_print,
++#endif
+ .tp_repr = (reprfunc)enumitem_repr,
+ };
+
diff --git a/media-gfx/zbar/zbar-0.23.1.ebuild b/media-gfx/zbar/zbar-0.23.1.ebuild
index d74a878a969a..7b07b269b68f 100644
--- a/media-gfx/zbar/zbar-0.23.1.ebuild
+++ b/media-gfx/zbar/zbar-0.23.1.ebuild
@@ -87,6 +87,7 @@ PATCHES=(
"${FILESDIR}/${PN}-0.23_fix_Qt5X11Extras_detect.patch"
"${FILESDIR}/${PN}-0.23_fix_python_detect.patch"
"${FILESDIR}/${P}-autoconf-2.70.patch"
+ "${FILESDIR}/${PN}-0.23.1_python_tp_print.patch"
)
DOCS=( README.md NEWS.md TODO.md HACKING.md TODO.md ChangeLog )