From 3ab6ef4f81864956f9a0b140d6ad90c2cac12715 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Jul 11 2022 09:20:45 +0000 Subject: Update to 1.15.1 --- diff --git a/4d0cc66daf88f477f3a11262d0e2e093f9397e2c.patch b/4d0cc66daf88f477f3a11262d0e2e093f9397e2c.patch deleted file mode 100644 index 07c360b..0000000 --- a/4d0cc66daf88f477f3a11262d0e2e093f9397e2c.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 4d0cc66daf88f477f3a11262d0e2e093f9397e2c Mon Sep 17 00:00:00 2001 -From: Armin Rigo -Date: Tue, 29 Mar 2022 11:48:33 +0200 -Subject: [PATCH] Issue #531 - -on ppc64le, libffi requires 16 bytes alignment for at least the return -value of functions if that is 'long double'. ---- - c/_cffi_backend.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c -index ffecbf9a..ce2cacd9 100644 ---- a/c/_cffi_backend.c -+++ b/c/_cffi_backend.c -@@ -5665,7 +5665,8 @@ static ffi_type *fb_fill_type(struct funcbuilder_s *fb, CTypeDescrObject *ct, - } - } - --#define ALIGN_ARG(n) ((n) + 7) & ~7 -+#define ALIGN_TO(n, a) ((n) + ((a)-1)) & ~((a)-1) -+#define ALIGN_ARG(n) ALIGN_TO(n, 8) - - static int fb_build(struct funcbuilder_s *fb, PyObject *fargs, - CTypeDescrObject *fresult) -@@ -5690,10 +5691,12 @@ static int fb_build(struct funcbuilder_s *fb, PyObject *fargs, - /* exchange data size */ - /* first, enough room for an array of 'nargs' pointers */ - exchange_offset = nargs * sizeof(void*); -+ /* then enough room for the result --- which means at least -+ sizeof(ffi_arg), according to the ffi docs, but we also -+ align according to the result type, for issue #531 */ -+ exchange_offset = ALIGN_TO(exchange_offset, fb->rtype->alignment); - exchange_offset = ALIGN_ARG(exchange_offset); - cif_descr->exchange_offset_arg[0] = exchange_offset; -- /* then enough room for the result --- which means at least -- sizeof(ffi_arg), according to the ffi docs */ - i = fb->rtype->size; - if (i < (Py_ssize_t)sizeof(ffi_arg)) - i = sizeof(ffi_arg); -@@ -5721,6 +5724,7 @@ static int fb_build(struct funcbuilder_s *fb, PyObject *fargs, - if (fb->atypes != NULL) { - fb->atypes[i] = atype; - /* exchange data size */ -+ exchange_offset = ALIGN_TO(exchange_offset, atype->alignment); - exchange_offset = ALIGN_ARG(exchange_offset); - cif_descr->exchange_offset_arg[1 + i] = exchange_offset; - exchange_offset += atype->size; -@@ -5737,6 +5741,7 @@ static int fb_build(struct funcbuilder_s *fb, PyObject *fargs, - } - - #undef ALIGN_ARG -+#undef ALIGN_TO - - static void fb_cat_name(struct funcbuilder_s *fb, const char *piece, - int piecelen) --- -GitLab - diff --git a/871bae572cafc3afb81eb13705945f0a6f708d54.patch b/871bae572cafc3afb81eb13705945f0a6f708d54.patch deleted file mode 100644 index 993d11a..0000000 --- a/871bae572cafc3afb81eb13705945f0a6f708d54.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 871bae572cafc3afb81eb13705945f0a6f708d54 Mon Sep 17 00:00:00 2001 -From: Armin Rigo -Date: Tue, 1 Feb 2022 08:00:11 +0100 -Subject: [PATCH] =?UTF-8?q?apply=20patch=20from=20Tom=C3=A1=C5=A1=20on=20P?= - =?UTF-8?q?R=20111?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---HG-- -branch : adapt-tests-for-python3.11 ---- - c/test_c.py | 47 ++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 46 insertions(+), 1 deletion(-) - -diff --git a/c/test_c.py b/c/test_c.py -index 654584d9..906eb074 100644 ---- a/c/test_c.py -+++ b/c/test_c.py -@@ -1331,9 +1331,11 @@ def test_callback_exception(): - except ImportError: - import io as cStringIO # Python 3 - import linecache -- def matches(istr, ipattern, ipattern38): -+ def matches(istr, ipattern, ipattern38, ipattern311): - if sys.version_info >= (3, 8): - ipattern = ipattern38 -+ if sys.version_info >= (3, 11): -+ ipattern = ipattern311 - str, pattern = istr, ipattern - while '$' in pattern: - i = pattern.index('$') -@@ -1387,6 +1389,16 @@ Traceback (most recent call last): - File "$", line $, in check_value - $ - ValueError: 42 -+""", """\ -+Exception ignored from cffi callback : -+Traceback (most recent call last): -+ File "$", line $, in Zcb1 -+ $ -+ $ -+ File "$", line $, in check_value -+ $ -+ $ -+ValueError: 42 - """) - sys.stderr = cStringIO.StringIO() - bigvalue = 20000 -@@ -1401,6 +1413,13 @@ Traceback (most recent call last): - File "$", line $, in test_callback_exception - $ - OverflowError: integer 60000 does not fit 'short' -+""", """\ -+Exception ignored from cffi callback , trying to convert the result back to C: -+Traceback (most recent call last): -+ File "$", line $, in test_callback_exception -+ $ -+ $ -+OverflowError: integer 60000 does not fit 'short' - """) - sys.stderr = cStringIO.StringIO() - bigvalue = 20000 -@@ -1449,6 +1468,19 @@ Traceback (most recent call last): - File "$", line $, in test_callback_exception - $ - TypeError: $integer$ -+""", """\ -+Exception ignored from cffi callback , trying to convert the result back to C: -+Traceback (most recent call last): -+ File "$", line $, in test_callback_exception -+ $ -+ $ -+OverflowError: integer 60000 does not fit 'short' -+Exception ignored during handling of the above exception by 'onerror': -+Traceback (most recent call last): -+ File "$", line $, in test_callback_exception -+ $ -+ $ -+TypeError: $integer$ - """) - # - sys.stderr = cStringIO.StringIO() -@@ -1478,6 +1510,19 @@ Traceback (most recent call last): - File "$", line $, in oops - $ - AttributeError: 'str' object has no attribute 'append$ -+""", """\ -+Exception ignored from cffi callback , trying to convert the result back to C: -+Traceback (most recent call last): -+ File "$", line $, in test_callback_exception -+ $ -+ $ -+OverflowError: integer 60000 does not fit 'short' -+Exception ignored during handling of the above exception by 'onerror': -+Traceback (most recent call last): -+ File "$", line $, in oops -+ $ -+ $ -+AttributeError: 'str' object has no attribute 'append$ - """) - finally: - sys.stderr = orig_stderr --- -GitLab - diff --git a/python-cffi.spec b/python-cffi.spec index 359603b..7b5c476 100644 --- a/python-cffi.spec +++ b/python-cffi.spec @@ -1,17 +1,13 @@ Name: python-cffi -%global general_version 1.15.0 +%global general_version 1.15.1 Version: %{general_version}%{?prerel:~%{prerel}} -Release: 6%{?dist} +Release: 0%{?dist} Summary: Foreign Function Interface for Python to call C code License: MIT URL: https://cffi.readthedocs.org/ Source0: %{pypi_source cffi} -Patch1: https://foss.heptapod.net/pypy/cffi/-/commit/871bae572cafc3afb81eb13705945f0a6f708d54.patch -# on ppc64le, libffi requires 16 bytes alignment for at least the return -# value of functions if that is 'long double': -Patch2: https://foss.heptapod.net/pypy/cffi/-/commit/4d0cc66daf88f477f3a11262d0e2e093f9397e2c.patch -BuildRequires: make +BuildRequires: make BuildRequires: libffi-devel BuildRequires: gcc @@ -73,6 +69,10 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} -m pytest c/ testing/ %doc doc/build/html %changelog +* Mon Jul 11 2022 Lumír Balhar - 1.15.1-0 +- Update to 1.15.1 +Resolves: rhbz#2102824 + * Mon Jun 13 2022 Python Maint - 1.15.0-6 - Rebuilt for Python 3.11 diff --git a/sources b/sources index 3e81479..68c5c35 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cffi-1.15.0.tar.gz) = ee83efde6f77f4a0c5889088c4c208ed7b9071fe06dfc16a8d2396de07f78fe859e1e39866760198a9d700f3b7359e8715e8a3e4907feb81d3fc4b8dd0dbaca1 +SHA512 (cffi-1.15.1.tar.gz) = e99cafcb029076abc29e435b490fa0573ee2856f4051b7ca8a5b38cd125d56dd9dae8b189f59ceb3d728a675da8ee83239e09e19f8b0feeddea4b186ab5173a5