diff --git a/731.patch b/731.patch new file mode 100644 index 0000000..4c924f4 --- /dev/null +++ b/731.patch @@ -0,0 +1,39 @@ +From 17dc5b6cd96dcfe64fd71789c771ca9b96d260e5 Mon Sep 17 00:00:00 2001 +From: "Andrew J. Hesford" +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 +--- + setup.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 944e7fa2..462b1e95 100644 +--- a/setup.py ++++ b/setup.py +@@ -82,7 +82,11 @@ + 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: diff --git a/PyYAML.spec b/PyYAML.spec index c6a3324..7e86c2e 100644 --- a/PyYAML.spec +++ b/PyYAML.spec @@ -7,7 +7,7 @@ Name: PyYAML Version: 6.0.1 -Release: 3%{?dist} +Release: 4%{?dist} %global uversion %{version} Summary: YAML parser and emitter for Python @@ -15,6 +15,10 @@ License: MIT URL: https://github.com/yaml/pyyaml Source0: https://github.com/yaml/pyyaml/archive/%{uversion}.tar.gz +# Fix build with Cython 3 +# Proposed upstream but refused (upstream does not want Cython 3) +Patch: https://github.com/yaml/pyyaml/pull/731.patch + BuildRequires: gcc BuildRequires: libyaml-devel @@ -25,8 +29,7 @@ BuildRequires: python2-setuptools BuildRequires: python3-devel BuildRequires: python3-setuptools -# This requires cython 0.29, see https://github.com/yaml/pyyaml/issues/601 -BuildRequires: python3-cython < 3 +BuildRequires: python3-cython %global _description\ @@ -68,7 +71,7 @@ Summary: %summary %prep -%setup -q -n pyyaml-%{uversion} +%autosetup -p1 -n pyyaml-%{uversion} chmod a-x examples/yaml-highlight/yaml_hl.py # remove pre-generated file @@ -112,6 +115,9 @@ rm -rf ext/_yaml.c %changelog +* Fri Jul 28 2023 Miro Hrončok - 6.0.1-4 +- Fix build with Cython 3 + * Tue Jul 25 2023 Miro Hrončok - 6.0.1-3 - Pin Cython < 3 to build this package