diff --git a/cython3.patch b/cython3.patch new file mode 100644 index 0000000..b4fefda --- /dev/null +++ b/cython3.patch @@ -0,0 +1,56 @@ +From 31f782aed3de56300886dd7350f1faff657e14dd Mon Sep 17 00:00:00 2001 +From: Spencer Clark +Date: Sat, 29 Jul 2023 09:51:10 -0400 +Subject: [PATCH] Set c_api_binop_methods compiler directive to True + +This retains Cython 0.x behavior for arithmetic operators for +Cython >= 3.0.0. +--- + Changelog | 2 ++ + pyproject.toml | 2 +- + requirements-dev.txt | 2 +- + setup.py | 9 ++++++++- + 4 files changed, 12 insertions(+), 3 deletions(-) + +Index: cftime-1.6.2/pyproject.toml +=================================================================== +--- cftime-1.6.2.orig/pyproject.toml ++++ cftime-1.6.2/pyproject.toml +@@ -1,3 +1,3 @@ + [build-system] +-requires = ["setuptools>=41.2", "cython", "wheel", "oldest-supported-numpy"] ++requires = ["setuptools>=41.2", "cython>=0.29.20", "wheel", "oldest-supported-numpy"] + build-backend = "setuptools.build_meta" +Index: cftime-1.6.2/requirements-dev.txt +=================================================================== +--- cftime-1.6.2.orig/requirements-dev.txt ++++ cftime-1.6.2/requirements-dev.txt +@@ -1,7 +1,7 @@ + check-manifest + coverage + coveralls +-cython>0.26.1 ++cython>=0.29.20 + pytest + pytest-cov + sphinx +Index: cftime-1.6.2/setup.py +=================================================================== +--- cftime-1.6.2.orig/setup.py ++++ cftime-1.6.2/setup.py +@@ -16,7 +16,14 @@ except ImportError: + BASEDIR = os.path.abspath(os.path.dirname(__file__)) + SRCDIR = os.path.join(BASEDIR,'src') + CMDS_NOCYTHONIZE = ['clean','clean_cython','sdist'] +-COMPILER_DIRECTIVES = {} ++COMPILER_DIRECTIVES = { ++ # Cython 3.0.0 changes the default of the c_api_binop_methods directive to ++ # False, resulting in errors in datetime and timedelta arithmetic: ++ # https://github.com/Unidata/cftime/issues/271. We explicitly set it to ++ # True to retain Cython 0.x behavior for future Cython versions. This ++ # directive was added in Cython version 0.29.20. ++ "c_api_binop_methods": True ++} + DEFINE_MACROS = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")] + FLAG_COVERAGE = '--cython-coverage' # custom flag enabling Cython line tracing + NAME = 'cftime' diff --git a/python-cftime.changes b/python-cftime.changes index 285fa3e..a76cc92 100644 --- a/python-cftime.changes +++ b/python-cftime.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 30 11:03:06 UTC 2023 - Markéta Machová + +- add upstream cython3.patch + ------------------------------------------------------------------- Thu Oct 27 22:15:54 UTC 2022 - Yogalakshmi Arunachalam diff --git a/python-cftime.spec b/python-cftime.spec index 6c6aec1..60ffca8 100644 --- a/python-cftime.spec +++ b/python-cftime.spec @@ -1,7 +1,7 @@ # # spec file for package python-cftime # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,8 +17,6 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} -# no numpy for Python 3.6 -%define skip_python36 1 Name: python-cftime Version: 1.6.2 Release: 0 @@ -26,14 +24,16 @@ Summary: Time-handling functionality from netcdf4-python License: MIT URL: https://github.com/Unidata/cftime Source: https://files.pythonhosted.org/packages/source/c/cftime/cftime-%{version}.tar.gz -BuildRequires: %{python_module Cython} +#PATCH-FIX-UPSTREAM https://github.com/Unidata/cftime/pull/305 Set c_api_binop_methods Cython compiler directive to True +Patch: cython3.patch +BuildRequires: %{python_module Cython >= 0.29.20} BuildRequires: %{python_module numpy-devel} BuildRequires: %{python_module numpy} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools >= 18.0} BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-Cython +Requires: python-Cython >= 0.29.20 Requires: python-numpy %python_subpackages @@ -42,7 +42,7 @@ Time-handling functionality from netcdf4-python. Was split out from netcfd4-python in 2016. %prep -%setup -q -n cftime-%{version} +%autosetup -p1 -n cftime-%{version} # do not require cov/xdist/etc rm setup.cfg