diff mbox series

[2/3] python3-pyaaml: make compatible with cython 3.x

Message ID 20240105133543.3017997-2-alex@linutronix.de
State Accepted, archived
Commit cf4e45176a37b6f53a6316ec6b1556d6aea39b57
Headers show
Series [1/3] devtool/standard: correctly escape \ | expand

Commit Message

Alexander Kanavin Jan. 5, 2024, 1:35 p.m. UTC
This has been rejected by upstream in favour of requiring obsolete cython
until there's 'proper' 3.x support. Months later, there's still no progress
so let's just take the rejected fix, as it does work (as reported by others as well),
and allows moving forward with cython.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 .../0001-Fix-builds-with-Cython-3.patch       | 54 +++++++++++++++++++
 .../python/python3-pyyaml_6.0.1.bb            |  1 +
 2 files changed, 55 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch

Comments

Alexandre Belloni Jan. 7, 2024, 7:49 p.m. UTC | #1
Hello,

You have a typo in the subject.

On 05/01/2024 14:35:42+0100, Alexander Kanavin wrote:
> This has been rejected by upstream in favour of requiring obsolete cython
> until there's 'proper' 3.x support. Months later, there's still no progress
> so let's just take the rejected fix, as it does work (as reported by others as well),
> and allows moving forward with cython.
> 
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---
>  .../0001-Fix-builds-with-Cython-3.patch       | 54 +++++++++++++++++++
>  .../python/python3-pyyaml_6.0.1.bb            |  1 +
>  2 files changed, 55 insertions(+)
>  create mode 100644 meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
> 
> diff --git a/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch b/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
> new file mode 100644
> index 00000000000..a87d588b6a1
> --- /dev/null
> +++ b/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
> @@ -0,0 +1,54 @@
> +From 9cc23db56add79357b8f8257fe6fc0d6879d4579 Mon Sep 17 00:00:00 2001
> +From: "Andrew J. Hesford" <ajh@sideband.org>
> +Date: Fri, 21 Jul 2023 09:50:00 -0400
> +Subject: [PATCH] Fix builds with Cython 3
> +
> +This is a *de minimis* fix for building with Cython 3. Recent Cython<3
> +releases provided `Cython.Distutils.build_ext` as an alias to
> +`Cython.Distutils.old_build_ext.old_build_ext`; Cython 3 drops this
> +alias and instead uses a wholly new `Cython.Distutils.build_ext` that
> +does not provide the `cython_sources` function used in `setup.py`.
> +
> +Explicitly importing `old_build_ext` preserves the existing behavior for
> +recent Cython<3 and uses the correct behavior for Cython 3. Should the
> +import fail (*e.g.*, because the version of Cython available predates
> +the availability of `old_build_ext`), the import falls back to just
> +`Cython.Distutils.build_ext`.
> +
> +Signed-off-by: Andrew J. Hesford <ajh@sideband.org>
> +Upstream-Status: Denied [https://github.com/yaml/pyyaml/pull/731]
> +Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> +---
> + pyproject.toml | 2 +-
> + setup.py       | 6 +++++-
> + 2 files changed, 6 insertions(+), 2 deletions(-)
> +
> +diff --git a/pyproject.toml b/pyproject.toml
> +index 4bc04c0..2bf5ec8 100644
> +--- a/pyproject.toml
> ++++ b/pyproject.toml
> +@@ -1,3 +1,3 @@
> + [build-system]
> +-requires = ["setuptools", "wheel", "Cython<3.0"]
> ++requires = ["setuptools", "wheel", "Cython"]
> + build-backend = "setuptools.build_meta"
> +diff --git a/setup.py b/setup.py
> +index 65b0ea0..4461580 100644
> +--- a/setup.py
> ++++ b/setup.py
> +@@ -82,7 +82,11 @@ if 'sdist' in sys.argv or os.environ.get('PYYAML_FORCE_CYTHON') == '1':
> +     with_cython = True
> + try:
> +     from Cython.Distutils.extension import Extension as _Extension
> +-    from Cython.Distutils import build_ext as _build_ext
> ++    try:
> ++        from Cython.Distutils.old_build_ext import old_build_ext as _build_ext
> ++    except ImportError:
> ++        from Cython.Distutils import build_ext as _build_ext
> ++
> +     with_cython = True
> + except ImportError:
> +     if with_cython:
> +-- 
> +2.39.2
> +
> diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
> index 4ab8f038f42..61f7cbc6b36 100644
> --- a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
> +++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
> @@ -9,6 +9,7 @@ PYPI_PACKAGE = "PyYAML"
>  
>  inherit pypi python_setuptools_build_meta
>  
> +SRC_URI += "file://0001-Fix-builds-with-Cython-3.patch"
>  SRC_URI[sha256sum] = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"
>  
>  RDEPENDS:${PN} += "\
> -- 
> 2.39.2
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#193356): https://lists.openembedded.org/g/openembedded-core/message/193356
> Mute This Topic: https://lists.openembedded.org/mt/103542145/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch b/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
new file mode 100644
index 00000000000..a87d588b6a1
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
@@ -0,0 +1,54 @@ 
+From 9cc23db56add79357b8f8257fe6fc0d6879d4579 Mon Sep 17 00:00:00 2001
+From: "Andrew J. Hesford" <ajh@sideband.org>
+Date: Fri, 21 Jul 2023 09:50:00 -0400
+Subject: [PATCH] Fix builds with Cython 3
+
+This is a *de minimis* fix for building with Cython 3. Recent Cython<3
+releases provided `Cython.Distutils.build_ext` as an alias to
+`Cython.Distutils.old_build_ext.old_build_ext`; Cython 3 drops this
+alias and instead uses a wholly new `Cython.Distutils.build_ext` that
+does not provide the `cython_sources` function used in `setup.py`.
+
+Explicitly importing `old_build_ext` preserves the existing behavior for
+recent Cython<3 and uses the correct behavior for Cython 3. Should the
+import fail (*e.g.*, because the version of Cython available predates
+the availability of `old_build_ext`), the import falls back to just
+`Cython.Distutils.build_ext`.
+
+Signed-off-by: Andrew J. Hesford <ajh@sideband.org>
+Upstream-Status: Denied [https://github.com/yaml/pyyaml/pull/731]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ pyproject.toml | 2 +-
+ setup.py       | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 4bc04c0..2bf5ec8 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,3 +1,3 @@
+ [build-system]
+-requires = ["setuptools", "wheel", "Cython<3.0"]
++requires = ["setuptools", "wheel", "Cython"]
+ build-backend = "setuptools.build_meta"
+diff --git a/setup.py b/setup.py
+index 65b0ea0..4461580 100644
+--- a/setup.py
++++ b/setup.py
+@@ -82,7 +82,11 @@ if 'sdist' in sys.argv or os.environ.get('PYYAML_FORCE_CYTHON') == '1':
+     with_cython = True
+ try:
+     from Cython.Distutils.extension import Extension as _Extension
+-    from Cython.Distutils import build_ext as _build_ext
++    try:
++        from Cython.Distutils.old_build_ext import old_build_ext as _build_ext
++    except ImportError:
++        from Cython.Distutils import build_ext as _build_ext
++
+     with_cython = True
+ except ImportError:
+     if with_cython:
+-- 
+2.39.2
+
diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
index 4ab8f038f42..61f7cbc6b36 100644
--- a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
+++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
@@ -9,6 +9,7 @@  PYPI_PACKAGE = "PyYAML"
 
 inherit pypi python_setuptools_build_meta
 
+SRC_URI += "file://0001-Fix-builds-with-Cython-3.patch"
 SRC_URI[sha256sum] = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"
 
 RDEPENDS:${PN} += "\