Compare commits

..

No commits in common. 'c9' and 'c8-beta-stream-3.9' have entirely different histories.

@ -1 +1 @@
6e1f2a315194526e5092e34b77622c117c14371c SOURCES/Cython-0.29.22.tar.gz
718dcfee83132421e2df4eb6fa0ef7f3917bf7b9 SOURCES/Cython-0.29.21.tar.gz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/Cython-0.29.22.tar.gz
SOURCES/Cython-0.29.21.tar.gz

@ -0,0 +1,114 @@
diff -U3 -r cython-0.29.17.orig/Cython/Compiler/ExprNodes.py cython-0.29.17/Cython/Compiler/ExprNodes.py
--- cython-0.29.17.orig/Cython/Compiler/ExprNodes.py 2020-04-26 13:48:48.000000000 +0200
+++ cython-0.29.17/Cython/Compiler/ExprNodes.py 2020-05-15 17:44:55.157172257 +0200
@@ -2295,8 +2295,10 @@
setter = 'PyDict_SetItem'
namespace = Naming.moddict_cname
elif entry.is_pyclass_attr:
- code.globalstate.use_utility_code(UtilityCode.load_cached("SetNameInClass", "ObjectHandling.c"))
- setter = '__Pyx_SetNameInClass'
+ # Special-case setting __new__
+ n = "SetNewInClass" if self.name == "__new__" else "SetNameInClass"
+ code.globalstate.use_utility_code(UtilityCode.load_cached(n, "ObjectHandling.c"))
+ setter = '__Pyx_' + n
else:
assert False, repr(entry)
code.put_error_if_neg(
diff -U3 -r cython-0.29.17.orig/Cython/Compiler/Nodes.py cython-0.29.17/Cython/Compiler/Nodes.py
--- cython-0.29.17.orig/Cython/Compiler/Nodes.py 2020-04-26 13:48:48.000000000 +0200
+++ cython-0.29.17/Cython/Compiler/Nodes.py 2020-05-15 17:44:55.159172253 +0200
@@ -2872,7 +2872,6 @@
func = decorator.decorator
if func.is_name:
self.is_classmethod |= func.name == 'classmethod'
- self.is_staticmethod |= func.name == 'staticmethod'
if self.is_classmethod and env.lookup_here('classmethod'):
# classmethod() was overridden - not much we can do here ...
diff -U3 -r cython-0.29.17.orig/Cython/Utility/ObjectHandling.c cython-0.29.17/Cython/Utility/ObjectHandling.c
--- cython-0.29.17.orig/Cython/Utility/ObjectHandling.c 2020-04-26 13:48:48.000000000 +0200
+++ cython-0.29.17/Cython/Utility/ObjectHandling.c 2020-05-15 17:44:55.160172251 +0200
@@ -1163,6 +1163,30 @@
#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value)
#endif
+/////////////// SetNewInClass.proto ///////////////
+
+static int __Pyx_SetNewInClass(PyObject *ns, PyObject *name, PyObject *value);
+
+/////////////// SetNewInClass ///////////////
+//@requires: SetNameInClass
+
+// Special-case setting __new__: if it's a Cython function, wrap it in a
+// staticmethod. This is similar to what Python does for a Python function
+// called __new__.
+static int __Pyx_SetNewInClass(PyObject *ns, PyObject *name, PyObject *value) {
+#ifdef __Pyx_CyFunction_USED
+ int ret;
+ if (__Pyx_CyFunction_Check(value)) {
+ PyObject *staticnew = PyStaticMethod_New(value);
+ if (unlikely(!staticnew)) return -1;
+ ret = __Pyx_SetNameInClass(ns, name, staticnew);
+ Py_DECREF(staticnew);
+ return ret;
+ }
+#endif
+ return __Pyx_SetNameInClass(ns, name, value);
+}
+
/////////////// GetModuleGlobalName.proto ///////////////
//@requires: PyDictVersioning
Only in cython-0.29.17.orig: cython-0.29.17
diff -U3 -r cython-0.29.17.orig/tests/run/cyfunction.pyx cython-0.29.17/tests/run/cyfunction.pyx
--- cython-0.29.17.orig/tests/run/cyfunction.pyx 2020-04-26 13:48:48.000000000 +0200
+++ cython-0.29.17/tests/run/cyfunction.pyx 2020-05-15 17:44:55.160172251 +0200
@@ -376,6 +376,18 @@
def meth(self): pass
+class TestStaticmethod(object):
+ """
+ >>> x = TestStaticmethod()
+ >>> x.staticmeth(42)
+ 42
+ >>> x.staticmeth.__get__(42)()
+ 42
+ """
+ @staticmethod
+ def staticmeth(arg): return arg
+
+
cdef class TestOptimisedBuiltinMethod:
"""
>>> obj = TestOptimisedBuiltinMethod()
diff -U3 -r cython-0.29.17.orig/tests/run/fused_def.pyx cython-0.29.17/tests/run/fused_def.pyx
--- cython-0.29.17.orig/tests/run/fused_def.pyx 2020-04-26 13:48:48.000000000 +0200
+++ cython-0.29.17/tests/run/fused_def.pyx 2020-05-15 18:03:39.436752174 +0200
@@ -268,14 +268,6 @@
def test_fused_def_super():
"""
>>> test_fused_def_super()
- long 10
- long 11
- long 11
- long 12
- short 12
- long 13
- short 13
- long 14
<class 'fused_def.SubClass'> long 14
<class 'fused_def.SubClass'> long 15
<class 'fused_def.SubClass'> long 15
@@ -296,11 +288,6 @@
obj = SubClass()
cls = SubClass
- obj.mystaticmethod(obj, 10)
- cls.mystaticmethod(obj, 11)
- obj.mystaticmethod[cy.short](obj, 12)
- cls.mystaticmethod[cy.short](obj, 13)
-
obj.myclassmethod(14)
cls.myclassmethod(15)
obj.myclassmethod[cy.short](16)

@ -1,105 +1,80 @@
# Disable tests on RHEL9 as to not pull in the test dependencies
# Specify --with tests to run the tests e.g. on EPEL
%bcond_with tests
%global srcname Cython
%global upname cython
# This bcond allows to ship a non-compiled version
# Slower, but sometimes necessary with alpha Python versions
%bcond_without cython_compile
# RHEL8: Tests disabled during build due to missing dependencies
%bcond_with tests
Name: Cython
Version: 0.29.22
Release: 7%{?dist}
Version: 0.29.21
%global upver %{version}
Release: 5%{?dist}
Summary: Language for writing Python extension modules
License: ASL 2.0
URL: http://www.cython.org
Source: https://github.com/cython/cython/archive/%{version}/Cython-%{version}.tar.gz
BuildRequires: python3-devel
BuildRequires: python3-setuptools
Source: https://github.com/cython/cython/archive/%{upver}/%{srcname}-%{version}.tar.gz
# Exclude i686 arch. Due to a modularity issue it's being added to the
# x86_64 compose of CRB, but we don't want to ship it at all.
# See: https://projects.engineering.redhat.com/browse/RCM-72605
ExcludeArch: i686
# Partially work around issues with class and static methods
# See https://bugzilla.redhat.com/show_bug.cgi?id=1788506
# Mostly backported from upstream: https://github.com/cython/cython/pull/3106
# This also:
# - Removes staticmethod optimizations for normal functions
# - Removes failing test for staticmethod fused functions, which still fail
# See also: https://github.com/cython/cython/issues/3614
Patch3106: class-static-method-workaround.patch
BuildRequires: gcc
%if %{with tests}
BuildRequires: gcc-c++
BuildRequires: python3-numpy
BuildRequires: python3-jedi
%endif
%if %{with cython_compile}
BuildRequires: gcc
%global python3_site %{python3_sitearch}
%else
BuildArch: noarch
%global python3_site %{python3_sitelib}
%endif
%global _description %{expand:
The Cython language makes writing C extensions for the Python language as easy
as Python itself. Cython is a source code translator based on Pyrex,
but supports more cutting edge functionality and optimizations.
The Cython language is a superset of the Python language (almost all Python
code is also valid Cython code), but Cython additionally supports optional
static typing to natively call C functions, operate with C++ classes and
declare fast C types on variables and class attributes.
This allows the compiler to generate very efficient C code from Cython code.
This makes Cython the ideal language for writing glue code for external C/C++
libraries, and for fast C modules that speed up the execution of Python code.}
%global _description \
This is a development version of Pyrex, a language\
for writing Python extension modules.
%description %{_description}
%package -n python3-Cython
%package -n python%{python3_pkgversion}-%{srcname}
Summary: %{summary}
Provides: Cython = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: Cython%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: cython = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: cython%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%py_provides python3-cython
%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-rpm-macros
BuildRequires: python%{python3_pkgversion}-setuptools
%if %{with tests}
BuildRequires: python%{python3_pkgversion}-numpy
BuildRequires: python%{python3_pkgversion}-jedi
%endif
Requires: python%{python3_pkgversion}-setuptools
# A small templating library is bundled in Cython/Tempita
# Upstream version 0.5.2 is available from https://pypi.org/project/Tempita
# but the bundled copy is patched and reorganized.
# Upstream homepage is inaccessible.
Provides: bundled(python3dist(tempita))
%description -n python3-Cython %{_description}
%package -n emacs-cython-mode
Summary: A major mode for editing Cython source files in Emacs
BuildArch: noarch
BuildRequires: emacs
Requires: emacs(bin) >= %{_emacs_version}
Provides: bundled(python%{python3_version}dist(tempita))
%description -n emacs-cython-mode
cython-mode is an Emacs major mode for editing Cython source files.
%description -n python%{python3_pkgversion}-%{srcname} %{_description}
Python 3 version.
%prep
%autosetup -n cython-%{version} -p1
%autosetup -n %{upname}-%{upver} -p1
%build
%py3_build -- %{!?with_cython_compile:--no-cython-compile}
# emacs-cython-mode build
echo ";;
(require 'cython-mode)" > cython-mode-init.el
cp -p Tools/cython-mode.el .
%{_emacs_bytecompile} *.el
%py3_build
%install
%py3_install -- %{!?with_cython_compile:--no-cython-compile}
%py3_install
rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests
# emacs-cython-mode install
mkdir -p %{buildroot}%{_emacs_sitelispdir}/
cp -p cython-mode.el cython-mode.elc %{buildroot}%{_emacs_sitelispdir}/
mkdir -p %{buildroot}%{_emacs_sitestartdir}/
cp -p cython-mode-init.el cython-mode-init.elc %{buildroot}%{_emacs_sitestartdir}/
# Rename unversioned binaries
mv %{buildroot}%{_bindir}/cython{,-%{python3_version}}
mv %{buildroot}%{_bindir}/cygdb{,-%{python3_version}}
mv %{buildroot}%{_bindir}/cythonize{,-%{python3_version}}
%if %{with tests}
%check
@ -110,55 +85,22 @@ cp -p cython-mode-init.el cython-mode-init.elc %{buildroot}%{_emacs_sitestartdir
%endif
%files -n python3-Cython
%files -n python%{python3_pkgversion}-%{srcname}
%license LICENSE.txt
%doc *.txt Demos Doc Tools
%{_bindir}/cython
%{_bindir}/cygdb
%{_bindir}/cythonize
%{python3_site}/Cython-*.egg-info/
%{python3_site}/Cython/
%{python3_site}/pyximport/
%pycached %{python3_site}/cython.py
%files -n emacs-cython-mode
%license LICENSE.txt
%{_emacs_sitelispdir}/cython*.el*
%{_emacs_sitestartdir}/cython*.el*
%{_bindir}/cython-%{python3_version}
%{_bindir}/cygdb-%{python3_version}
%{_bindir}/cythonize-%{python3_version}
%{python3_sitearch}/%{srcname}-*.egg-info/
%{python3_sitearch}/%{srcname}/
%{python3_sitearch}/pyximport/
%{python3_sitearch}/%{upname}.py
%{python3_sitearch}/__pycache__/%{upname}.*
%changelog
* Wed Feb 16 2022 Tomas Orsava <torsava@redhat.com> - 0.29.22-7
- Add gating configuration and a simple smoke test
- Related: rhbz#1950291
* Tue Feb 08 2022 Tomas Orsava <torsava@redhat.com> - 0.29.22-6
- Add automatically generated Obsoletes tag with the python39- prefix
for smoother upgrade from RHEL8
- Related: rhbz#1990421
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com>
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com>
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Mar 10 2021 Charalampos Stratakis <cstratak@redhat.com> - 0.29.22-3
- Disable tests on RHEL9 as to not pull in the test dependencies
* Tue Mar 09 2021 Miro Hrončok <mhroncok@redhat.com> - 0.29.22-2
- Remove an obsoleted patch
- Remove old Obsoletes and Conflicts
- Update description
- Provide cython, python3-cython
* Thu Mar 04 2021 Miro Hrončok <mhroncok@redhat.com> - 0.29.22-1
- Update to 0.29.22
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.29.21-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 13 2021 Tomas Orsava <torsava@redhat.com> - 0.29.21-5
- Convert from Fedora to the python39 module in RHEL8
- Resolves: rhbz#1877430
* Fri Nov 13 2020 Miro Hrončok <mhroncok@redhat.com> - 0.29.21-4
- Drop build dependency on coverage

Loading…
Cancel
Save