- update to 1.12.3
- drop patches: 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch 7a76a381534012af4790e815140d1538510b7d93.patch e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch * Direct support for pkg-config. * ffi.from_buffer() takes a new optional first argument that gives the array type of the result. It also takes an optional keyword argument require_writable to refuse read-only Python buffers. * ffi.new(), ffi.gc() or ffi.from_buffer() cdata objects can now be released at known times, either by using the with keyword or by calling the new ffi.release(). * Accept an expression like ffi.new("int[4]", p) if p is itself another cdata int[4]. * CPython 2.x: ffi.dlopen() failed with non-ascii file names on Posix * CPython: if a thread is started from C and then runs Python code (with callbacks or with the embedding solution), then previous versions of cffi would contain possible crashes and/or memory leaks. * Support for ffi.cdef(..., pack=N) where N is a power of two. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cffi?expand=0&rev=59
This commit is contained in:
parent
0c76d6df2a
commit
3bca1778c0
@ -1,46 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Armin Rigo <arigo@tunes.org>
|
|
||||||
# Date 1536839482 -7200
|
|
||||||
# Node ID 3184b0a675fc425b821b528d7fdf744b2f08dadf
|
|
||||||
# Parent 97a61f7b0bcd48eb74f136280ffd8733e829f153
|
|
||||||
Issue 378
|
|
||||||
|
|
||||||
Workaround for a GCC bug
|
|
||||||
|
|
||||||
diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
|
|
||||||
--- a/c/_cffi_backend.c
|
|
||||||
+++ b/c/_cffi_backend.c
|
|
||||||
@@ -892,11 +892,21 @@
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifdef __GNUC__
|
|
||||||
+/* This is a workaround for what I think is a GCC bug on several
|
|
||||||
+ platforms. See issue #378. */
|
|
||||||
+__attribute__((noinline))
|
|
||||||
+#endif
|
|
||||||
+void _cffi_memcpy(char *target, const void *src, size_t size)
|
|
||||||
+{
|
|
||||||
+ memcpy(target, src, size);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#define _write_raw_data(type) \
|
|
||||||
do { \
|
|
||||||
if (size == sizeof(type)) { \
|
|
||||||
type r = (type)source; \
|
|
||||||
- memcpy(target, &r, sizeof(type)); \
|
|
||||||
+ _cffi_memcpy(target, &r, sizeof(type)); \
|
|
||||||
return; \
|
|
||||||
} \
|
|
||||||
} while(0)
|
|
||||||
@@ -970,8 +980,8 @@
|
|
||||||
if (size == 2*sizeof(type)) { \
|
|
||||||
type r = (type)source.real; \
|
|
||||||
type i = (type)source.imag; \
|
|
||||||
- memcpy(target, &r, sizeof(type)); \
|
|
||||||
- memcpy(target+sizeof(type), &i, sizeof(type)); \
|
|
||||||
+ _cffi_memcpy(target, &r, sizeof(type)); \
|
|
||||||
+ _cffi_memcpy(target+sizeof(type), &i, sizeof(type)); \
|
|
||||||
return; \
|
|
||||||
} \
|
|
||||||
} while(0)
|
|
@ -1,29 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Armin Rigo <arigo@tunes.org>
|
|
||||||
# Date 1536088314 -7200
|
|
||||||
# Node ID 7a76a381534012af4790e815140d1538510b7d93
|
|
||||||
# Parent ef09637b23147f63a7d3fda628fa1704c97f1c72
|
|
||||||
Issue #382
|
|
||||||
|
|
||||||
Second fix attempt, thanks Adam
|
|
||||||
|
|
||||||
--- a/testing/cffi0/test_function.py
|
|
||||||
+++ b/testing/cffi0/test_function.py
|
|
||||||
@@ -45,14 +45,14 @@ class TestFunction(object):
|
|
||||||
assert x != math.sin(1.23) # rounding effects
|
|
||||||
assert abs(x - math.sin(1.23)) < 1E-6
|
|
||||||
|
|
||||||
- def test_sin_no_return_value(self):
|
|
||||||
+ def test_lround_no_return_value(self):
|
|
||||||
# check that 'void'-returning functions work too
|
|
||||||
ffi = FFI(backend=self.Backend())
|
|
||||||
ffi.cdef("""
|
|
||||||
- void sin(double x);
|
|
||||||
+ void lround(double x);
|
|
||||||
""")
|
|
||||||
m = ffi.dlopen(lib_m)
|
|
||||||
- x = m.sin(1.23)
|
|
||||||
+ x = m.lround(1.23)
|
|
||||||
assert x is None
|
|
||||||
|
|
||||||
def test_dlopen_filename(self):
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4
|
|
||||||
size 438498
|
|
3
cffi-1.12.2.tar.gz
Normal file
3
cffi-1.12.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7
|
||||||
|
size 453893
|
@ -1,32 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Armin Rigo <arigo@tunes.org>
|
|
||||||
# Date 1537369554 -7200
|
|
||||||
# Node ID e2e324a2f13e3a646de6f6ff03e90ed7d37e2636
|
|
||||||
# Parent 8076f2ac1bd2b68b7015fb1fb936bd6907946756
|
|
||||||
Issue #384
|
|
||||||
|
|
||||||
Un-ignore the warnings when testing for them, in case someone runs
|
|
||||||
py.test with the PYTHONWARNINGS environment variable set
|
|
||||||
|
|
||||||
diff --git a/c/test_c.py b/c/test_c.py
|
|
||||||
--- a/c/test_c.py
|
|
||||||
+++ b/c/test_c.py
|
|
||||||
@@ -3968,6 +3968,7 @@
|
|
||||||
z3 = cast(BVoidP, 0)
|
|
||||||
z4 = cast(BUCharP, 0)
|
|
||||||
with warnings.catch_warnings(record=True) as w:
|
|
||||||
+ warnings.simplefilter("always")
|
|
||||||
newp(new_pointer_type(BIntP), z1) # warn
|
|
||||||
assert len(w) == 1
|
|
||||||
newp(new_pointer_type(BVoidP), z1) # fine
|
|
||||||
diff --git a/testing/cffi0/backend_tests.py b/testing/cffi0/backend_tests.py
|
|
||||||
--- a/testing/cffi0/backend_tests.py
|
|
||||||
+++ b/testing/cffi0/backend_tests.py
|
|
||||||
@@ -1386,6 +1386,7 @@
|
|
||||||
ffi = FFI(backend=self.Backend())
|
|
||||||
ffi.cdef("enum foo;")
|
|
||||||
with warnings.catch_warnings(record=True) as log:
|
|
||||||
+ warnings.simplefilter("always")
|
|
||||||
n = ffi.cast("enum foo", -1)
|
|
||||||
assert int(n) == 0xffffffff
|
|
||||||
assert str(log[0].message) == (
|
|
@ -1,3 +1,23 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 2 10:39:31 UTC 2019 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
|
|
||||||
|
- update to 1.12.3
|
||||||
|
- drop patches: 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch
|
||||||
|
7a76a381534012af4790e815140d1538510b7d93.patch
|
||||||
|
e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch
|
||||||
|
* Direct support for pkg-config.
|
||||||
|
* ffi.from_buffer() takes a new optional first argument that gives the array
|
||||||
|
type of the result. It also takes an optional keyword argument require_writable
|
||||||
|
to refuse read-only Python buffers.
|
||||||
|
* ffi.new(), ffi.gc() or ffi.from_buffer() cdata objects can now be released
|
||||||
|
at known times, either by using the with keyword or by calling the new ffi.release().
|
||||||
|
* Accept an expression like ffi.new("int[4]", p) if p is itself another cdata int[4].
|
||||||
|
* CPython 2.x: ffi.dlopen() failed with non-ascii file names on Posix
|
||||||
|
* CPython: if a thread is started from C and then runs Python code
|
||||||
|
(with callbacks or with the embedding solution), then previous versions of cffi
|
||||||
|
would contain possible crashes and/or memory leaks.
|
||||||
|
* Support for ffi.cdef(..., pack=N) where N is a power of two.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 29 16:10:03 CET 2018 - mcepl@suse.com
|
Mon Oct 29 16:10:03 CET 2018 - mcepl@suse.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-cffi
|
# spec file for package python-cffi
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
Name: python-cffi
|
Name: python-cffi
|
||||||
Version: 1.11.5
|
Version: 1.12.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Foreign Function Interface for Python calling C code
|
Summary: Foreign Function Interface for Python calling C code
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -26,12 +26,6 @@ Group: Development/Languages/Python
|
|||||||
URL: http://cffi.readthedocs.org
|
URL: http://cffi.readthedocs.org
|
||||||
Source0: https://files.pythonhosted.org/packages/source/c/cffi/cffi-%{version}.tar.gz
|
Source0: https://files.pythonhosted.org/packages/source/c/cffi/cffi-%{version}.tar.gz
|
||||||
Source1: python-cffi-rpmlintrc
|
Source1: python-cffi-rpmlintrc
|
||||||
# https://bitbucket.org/cffi/cffi/issues/384/
|
|
||||||
Patch0: e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch
|
|
||||||
# https://bitbucket.org/cffi/cffi/issues/378
|
|
||||||
Patch1: 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch
|
|
||||||
# https://bitbucket.org/cffi/cffi/issues/382/test_sin_no_return_value-violates-calling
|
|
||||||
Patch2: 7a76a381534012af4790e815140d1538510b7d93.patch
|
|
||||||
BuildRequires: %{python_module devel}
|
BuildRequires: %{python_module devel}
|
||||||
BuildRequires: %{python_module pycparser}
|
BuildRequires: %{python_module pycparser}
|
||||||
BuildRequires: %{python_module pytest}
|
BuildRequires: %{python_module pytest}
|
||||||
@ -50,7 +44,6 @@ is to provide a convenient and reliable way of calling C code from Python.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n cffi-%{version}
|
%setup -q -n cffi-%{version}
|
||||||
%autopatch -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user