public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: "Alexander Kanavin" <alex.kanavin@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Alexander Kanavin <alex.kanavin@gmail.com>
Subject: [PATCH 32/33] libxml2: add a patch to fix python 3.9 support
Date: Wed, 28 Oct 2020 22:05:57 +0100	[thread overview]
Message-ID: <20201028210558.21070-32-alex.kanavin@gmail.com> (raw)
In-Reply-To: <20201028210558.21070-1-alex.kanavin@gmail.com>

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 .../libxml/libxml2/fix-python39.patch         | 92 +++++++++++++++++++
 meta/recipes-core/libxml/libxml2_2.9.10.bb    |  1 +
 2 files changed, 93 insertions(+)
 create mode 100644 meta/recipes-core/libxml/libxml2/fix-python39.patch

diff --git a/meta/recipes-core/libxml/libxml2/fix-python39.patch b/meta/recipes-core/libxml/libxml2/fix-python39.patch
new file mode 100644
index 0000000000..76a35d9f10
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/fix-python39.patch
@@ -0,0 +1,92 @@
+From e4fb36841800038c289997432ca547c9bfef9db1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Fri, 28 Feb 2020 12:48:14 +0100
+Subject: [PATCH] Parenthesize Py<type>_Check() in ifs
+
+In C, if expressions should be parenthesized.
+PyLong_Check, PyUnicode_Check etc. happened to expand to a parenthesized
+expression before, but that's not API to rely on.
+
+Since Python 3.9.0a4 it needs to be parenthesized explicitly.
+
+Fixes https://gitlab.gnome.org/GNOME/libxml2/issues/149
+---
+ python/libxml.c |  4 ++--
+ python/types.c  | 12 ++++++------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/python/libxml.c b/python/libxml.c
+index bc676c4e0..81e709f34 100644
+--- a/python/libxml.c
++++ b/python/libxml.c
+@@ -294,7 +294,7 @@ xmlPythonFileReadRaw (void * context, char * buffer, int len) {
+ 	lenread = PyBytes_Size(ret);
+ 	data = PyBytes_AsString(ret);
+ #ifdef PyUnicode_Check
+-    } else if PyUnicode_Check (ret) {
++    } else if (PyUnicode_Check (ret)) {
+ #if PY_VERSION_HEX >= 0x03030000
+         Py_ssize_t size;
+ 	const char *tmp;
+@@ -359,7 +359,7 @@ xmlPythonFileRead (void * context, char * buffer, int len) {
+ 	lenread = PyBytes_Size(ret);
+ 	data = PyBytes_AsString(ret);
+ #ifdef PyUnicode_Check
+-    } else if PyUnicode_Check (ret) {
++    } else if (PyUnicode_Check (ret)) {
+ #if PY_VERSION_HEX >= 0x03030000
+         Py_ssize_t size;
+ 	const char *tmp;
+diff --git a/python/types.c b/python/types.c
+index c2bafeb19..ed284ec74 100644
+--- a/python/types.c
++++ b/python/types.c
+@@ -602,16 +602,16 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
+     if (obj == NULL) {
+         return (NULL);
+     }
+-    if PyFloat_Check (obj) {
++    if (PyFloat_Check (obj)) {
+         ret = xmlXPathNewFloat((double) PyFloat_AS_DOUBLE(obj));
+-    } else if PyLong_Check(obj) {
++    } else if (PyLong_Check(obj)) {
+ #ifdef PyLong_AS_LONG
+         ret = xmlXPathNewFloat((double) PyLong_AS_LONG(obj));
+ #else
+         ret = xmlXPathNewFloat((double) PyInt_AS_LONG(obj));
+ #endif
+ #ifdef PyBool_Check
+-    } else if PyBool_Check (obj) {
++    } else if (PyBool_Check (obj)) {
+ 
+         if (obj == Py_True) {
+           ret = xmlXPathNewBoolean(1);
+@@ -620,14 +620,14 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
+           ret = xmlXPathNewBoolean(0);
+         }
+ #endif
+-    } else if PyBytes_Check (obj) {
++    } else if (PyBytes_Check (obj)) {
+         xmlChar *str;
+ 
+         str = xmlStrndup((const xmlChar *) PyBytes_AS_STRING(obj),
+                          PyBytes_GET_SIZE(obj));
+         ret = xmlXPathWrapString(str);
+ #ifdef PyUnicode_Check
+-    } else if PyUnicode_Check (obj) {
++    } else if (PyUnicode_Check (obj)) {
+ #if PY_VERSION_HEX >= 0x03030000
+         xmlChar *str;
+ 	const char *tmp;
+@@ -650,7 +650,7 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
+ 	ret = xmlXPathWrapString(str);
+ #endif
+ #endif
+-    } else if PyList_Check (obj) {
++    } else if (PyList_Check (obj)) {
+         int i;
+         PyObject *node;
+         xmlNodePtr cur;
+-- 
+GitLab
+
diff --git a/meta/recipes-core/libxml/libxml2_2.9.10.bb b/meta/recipes-core/libxml/libxml2_2.9.10.bb
index 90890ffaed..07ae68610c 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.10.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.10.bb
@@ -23,6 +23,7 @@ SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
            file://CVE-2020-7595.patch \
            file://CVE-2019-20388.patch \
            file://CVE-2020-24977.patch \
+           file://fix-python39.patch \
            "
 
 SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5"
-- 
2.29.0


  parent reply	other threads:[~2020-10-28 21:06 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-28 21:05 [PATCH 01/33] systemd-boot: upgrade 246.2 -> 246.6 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 02/33] glib-2.0: upgrade 2.64.5 -> 2.66.1 Alexander Kanavin
2020-10-29  3:51   ` [OE-core] " Khem Raj
2020-10-29  9:55     ` Alexander Kanavin
2020-10-29 20:13       ` Khem Raj
2020-10-28 21:05 ` [PATCH 03/33] cmake: update 3.18.2 -> 3.18.4 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 04/33] python3-pygobject: upgrade 3.36.1 -> 3.38.0 Alexander Kanavin
2020-10-28 21:56   ` [OE-core] " Khem Raj
2020-10-29  9:49     ` Alexander Kanavin
2020-10-29 20:12       ` Khem Raj
2020-10-28 21:05 ` [PATCH 05/33] libdazzle: upgrade 3.36.0 " Alexander Kanavin
2020-10-28 21:05 ` [PATCH 06/33] gobject-introspection: upgrade 1.64.1 -> 1.66.1 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 07/33] json-glib: upgrade 1.4.4 -> 1.6.0 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 08/33] ovmf: update edk2-stable202005 -> edk2-stable202008 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 09/33] gnu-config: update to latest revision Alexander Kanavin
2020-10-28 21:05 ` [PATCH 10/33] file: enable all built-in compression checkers Alexander Kanavin
2020-10-28 21:05 ` [PATCH 11/33] rpm: update 4.15.1 -> 4.16.0 Alexander Kanavin
2020-10-31 22:30   ` [OE-core] " Khem Raj
2020-10-28 21:05 ` [PATCH 12/33] elfutils: update 0.180 -> 0.181 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 13/33] ghostscript: update 9.52 -> 9.53.3 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 14/33] ltp: update 20200515 -> 20200930 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 15/33] gsettings-desktop-schemas: update 3.36.1 -> 3.38.0 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 16/33] libsecret: update 0.20.3 -> 0.20.4 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 17/33] mesa: update 20.1.8 -> 20.2.1 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 18/33] xf86-video-vesa: update 2.4.0 -> 2.5.0 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 19/33] lttng-modules: update 2.12.2 -> 2.12.3 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 20/33] webkitgtk: update 2.28.4 -> 2.30.1 Alexander Kanavin
2020-11-06  2:42   ` [PATCH] webkitgtk: fix opengl PACKAGECONFIG Martin Jansa
2020-11-06  3:38   ` [PATCH] webkitgtk: fix build with x11 enabled Martin Jansa
2020-10-28 21:05 ` [PATCH 21/33] dos2unix: update 7.4.1 -> 7.4.2 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 22/33] gnutls: update 3.16.4 -> 3.16.5 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 23/33] libcap: update 2.43 -> 2.44 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 24/33] vte: update 0.60.3 -> 0.62.1 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 25/33] libhandy: upgrade 0.0.13 -> 1.0.0 Alexander Kanavin
2020-10-28 22:09   ` [OE-core] " Khem Raj
2020-10-29  9:49     ` Alexander Kanavin
2020-10-28 21:05 ` [PATCH 26/33] libportal: add a recipe Alexander Kanavin
2020-10-28 21:05 ` [PATCH 27/33] epiphany: upgrade 3.36.4 -> 3.38.1 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 28/33] gtk-doc: upgrade 1.32 -> 1.33.0 Alexander Kanavin
2020-10-28 21:05 ` [PATCH 29/33] rpm: adjust MIPS64 N32 support Alexander Kanavin
2020-10-28 21:05 ` [PATCH 30/33] apt: remove host contamination with gtest Alexander Kanavin
2020-10-28 21:05 ` [PATCH 31/33] opkg-utils: correct priority matching in update-alternatives Alexander Kanavin
2020-10-28 21:05 ` Alexander Kanavin [this message]
2020-10-28 21:05 ` [PATCH 33/33] python: update 3.8.5 -> 3.9.0 Alexander Kanavin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201028210558.21070-32-alex.kanavin@gmail.com \
    --to=alex.kanavin@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox