Sync from SUSE:SLFO:Main python-cffi revision ae0fae64fa78749d1501a76efcb2fcf7
This commit is contained in:
commit
8c4a5ab4fb
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
95
8a3c2c816d789639b49d3ae867213393ed7abdff.patch
Normal file
95
8a3c2c816d789639b49d3ae867213393ed7abdff.patch
Normal file
@ -0,0 +1,95 @@
|
||||
From 8a3c2c816d789639b49d3ae867213393ed7abdff Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Fri, 15 Jul 2022 16:11:37 +0200
|
||||
Subject: [PATCH] Adjust tests for a last minute Python 3.11 change in the
|
||||
traceback format
|
||||
|
||||
See https://github.com/python/cpython/issues/93883
|
||||
and https://github.com/python/cpython/pull/93994
|
||||
|
||||
--HG--
|
||||
branch : python3.11.0b4
|
||||
---
|
||||
c/test_c.py | 35 ++---------------------------------
|
||||
1 file changed, 2 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/c/test_c.py b/c/test_c.py
|
||||
index cde83b80..048711c7 100644
|
||||
--- a/c/test_c.py
|
||||
+++ b/c/test_c.py
|
||||
@@ -1342,11 +1342,11 @@ def test_callback_exception():
|
||||
except ImportError:
|
||||
import io as cStringIO # Python 3
|
||||
import linecache
|
||||
- def matches(istr, ipattern, ipattern38, ipattern311):
|
||||
+ def matches(istr, ipattern, ipattern38, ipattern311=None):
|
||||
if sys.version_info >= (3, 8):
|
||||
ipattern = ipattern38
|
||||
if sys.version_info >= (3, 11):
|
||||
- ipattern = ipattern311
|
||||
+ ipattern = ipattern311 or ipattern38
|
||||
str, pattern = istr, ipattern
|
||||
while '$' in pattern:
|
||||
i = pattern.index('$')
|
||||
@@ -1400,16 +1400,6 @@ Traceback (most recent call last):
|
||||
File "$", line $, in check_value
|
||||
$
|
||||
ValueError: 42
|
||||
-""", """\
|
||||
-Exception ignored from cffi callback <function$Zcb1 at 0x$>:
|
||||
-Traceback (most recent call last):
|
||||
- File "$", line $, in Zcb1
|
||||
- $
|
||||
- $
|
||||
- File "$", line $, in check_value
|
||||
- $
|
||||
- $
|
||||
-ValueError: 42
|
||||
""")
|
||||
sys.stderr = cStringIO.StringIO()
|
||||
bigvalue = 20000
|
||||
@@ -1424,13 +1414,6 @@ Traceback (most recent call last):
|
||||
File "$", line $, in test_callback_exception
|
||||
$
|
||||
OverflowError: integer 60000 does not fit 'short'
|
||||
-""", """\
|
||||
-Exception ignored from cffi callback <function$Zcb1 at 0x$>, 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
|
||||
@@ -1479,19 +1462,6 @@ Traceback (most recent call last):
|
||||
File "$", line $, in test_callback_exception
|
||||
$
|
||||
TypeError: $integer$
|
||||
-""", """\
|
||||
-Exception ignored from cffi callback <function$Zcb1 at 0x$>, 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()
|
||||
@@ -1526,7 +1496,6 @@ Exception ignored from cffi callback <function$Zcb1 at 0x$>, trying to convert t
|
||||
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):
|
||||
--
|
||||
GitLab
|
||||
|
BIN
cffi-1.15.1.tar.gz
(Stored with Git LFS)
Normal file
BIN
cffi-1.15.1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
4
python-cffi-rpmlintrc
Normal file
4
python-cffi-rpmlintrc
Normal file
@ -0,0 +1,4 @@
|
||||
# cffi specifically installs C headers in site-packages, so :
|
||||
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/parse_c_type.h")
|
||||
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/_cffi_(include|errors).h")
|
||||
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/_embedding.h")
|
712
python-cffi.changes
Normal file
712
python-cffi.changes
Normal file
@ -0,0 +1,712 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 21 12:23:11 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add sle15_python_module_pythons (jsc#PED-68)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 13 22:40:28 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Make calling of %{sle15modernpython} optional.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 6 08:59:54 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add 8a3c2c816d789639b49d3ae867213393ed7abdff.patch to resolve
|
||||
testsuite failures with Python 3.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 5 12:22:40 UTC 2022 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add python-py as test dependency
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 19 11:31:46 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.15.1:
|
||||
* If you call ffi.embedding_api() but don’t write any extern “Python” function
|
||||
there, then the resulting C code would fail an assert. Fixed.
|
||||
* Updated Windows/arm64 embedded libffi static lib to v3.4.2, and scripted to
|
||||
ease future updates (thanks Niyas Sait!)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 6 17:37:42 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.15.0:
|
||||
* Fixed MANIFEST.in to include missing file for Windows arm64 support
|
||||
* Fixed Linux wheel build to use gcc default ISA for libffi
|
||||
* Updated setup.py Python trove specifiers to currently-tested Python versions
|
||||
* CPython 3.10 support (including wheels)
|
||||
* MacOS arm64 support (including wheels)
|
||||
* Initial Windows arm64 support
|
||||
* Misc. doc and test updates
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 16 19:47:06 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.14.6:
|
||||
* Revert "grovel: detect :float and :double in the :auto type"
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 12 20:15:07 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.14.5:
|
||||
* Source fix for old gcc versions
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 19 10:46:36 UTC 2020 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.14.4:
|
||||
* no upstream changelog provided
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 28 11:23:13 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 1.14.3:
|
||||
* no upstream changelog provided
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 20 12:13:23 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||
|
||||
- update to 1.14.2
|
||||
* CPython 3 on Windows: we again try to compile with Py_LIMITED_API by default
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 10 08:10:36 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 1.14.1:
|
||||
* CFFI source code is now hosted on Heptapod.
|
||||
* Improved support for typedef int my_array_t[...]; with an explicit dot-dot-dot in API mode (issue #453)
|
||||
* Windows (32 and 64 bits): multiple fixes for ABI-mode call to functions that return a structure.
|
||||
* Experimental support for MacOS 11 on aarch64.
|
||||
* and a few other minor changes and bug fixes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 14:58:25 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||
|
||||
- Update to 1.14.0
|
||||
* ffi.dlopen() can now be called with a handle (as a void *) to an already-opened C library.
|
||||
* fixed a stack overflow issue for calls like lib.myfunc([large list]).
|
||||
* fixed a memory leak inside ffi.getwinerror() on CPython 3.x.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 18 20:21:04 UTC 2019 - Todd R <toddrme2178@gmail.com>
|
||||
|
||||
- Update to 1.13.2:
|
||||
* re-release because the Linux wheels came with an attached version of libffi that was very old and buggy
|
||||
- Update to 1.13.1:
|
||||
* deprecate the way to declare in cdef() a global variable with only void *foo;. You should always use a storage class, like extern void *foo; or maybe static void *foo;. These are all equivalent for the purposes of cdef(), but the reason for deprecating the bare version is that (as far as I know) it would always be mistake in a real C header.
|
||||
* fix the regression RuntimeError: found a situation in which we try to build a type recursively.
|
||||
* fixed issue #427 where a multithreading mistake in the embedding logic initialization code would cause deadlocks on CPython 3.7.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 15 10:39:50 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Update to 1.13.0:
|
||||
* No changelog provided upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 30 19:42:59 UTC 2019 - Todd R <toddrme2178@gmail.com>
|
||||
|
||||
- Update to 1.12.3
|
||||
* Fix for nested struct types that end in a var-sized array (#405).
|
||||
* Add support for using U and L characters at the end of integer constants in ffi.cdef() (thanks Guillaume).
|
||||
* More 3.8 fixes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 7 14:10:49 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
|
||||
|
||||
- Remove test suite exception which was fixed by 7a76a38153*.patch
|
||||
- Add doc/*/*.rst to %doc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
- Add 7a76a381534012af4790e815140d1538510b7d93.patch to fix
|
||||
bsc#1111657 (we need use to proper void returning function not
|
||||
to corrupt memory in tests).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 17 18:53:19 CEST 2018 - mcepl@suse.com
|
||||
|
||||
- Fix calling of py.test executor.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 21 07:24:58 CEST 2018 - mcepl@suse.com
|
||||
|
||||
- Add 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch as
|
||||
a workaround against
|
||||
https://bitbucket.org/cffi/cffi/issues/378/ (possible bug in
|
||||
GCC, see https://bugzilla.redhat.com/1552724).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 19 20:43:08 CEST 2018 - mcepl@suse.com
|
||||
|
||||
- Remove ignore-tests.patch -- testing what will happen
|
||||
- Add e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch from
|
||||
upstream to remove some warnings.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 18 15:51:02 UTC 2018 - Matěj Cepl <mcepl@suse.com>
|
||||
|
||||
- Switch off falling tests with new patch
|
||||
ignore-tests.patch instead of -k parameter for py.test.
|
||||
https://bitbucket.org/cffi/cffi/issues/384/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 2 23:14:41 UTC 2018 - arun@gmx.de
|
||||
|
||||
- update to version 1.11.5:
|
||||
* Issue #357: fix ffi.emit_python_code() which generated a buggy
|
||||
Python file if you are using a struct with an anonymous union
|
||||
field or vice-versa.
|
||||
* Windows: ffi.dlopen() should now handle unicode filenames.
|
||||
* ABI mode: implemented ffi.dlclose() for the in-line case (it used
|
||||
to be present only in the out-of-line case).
|
||||
* Fixed a corner case for setup.py install --record=xx --root=yy
|
||||
with an out-of-line ABI module. Also fixed Issue #345.
|
||||
* More hacks on Windows for running CFFI’s own setup.py.
|
||||
* Issue #358: in embedding, to protect against (the rare case of)
|
||||
Python initialization from several threads in parallel, we have to
|
||||
use a spin-lock. On CPython 3 it is worse because it might
|
||||
spin-lock for a long time (execution of Py_InitializeEx()). Sadly,
|
||||
recent changes to CPython make that solution needed on CPython 2
|
||||
too.
|
||||
* CPython 3 on Windows: we no longer compile with Py_LIMITED_API by
|
||||
default because such modules cannot be used with virtualenv. Issue
|
||||
#350 mentions a workaround if you still want that and are not
|
||||
concerned about virtualenv: pass a
|
||||
define_macros=[("Py_LIMITED_API", None)] to the
|
||||
ffibuilder.set_source() call.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 20 00:23:55 UTC 2018 - arun@gmx.de
|
||||
|
||||
- specfile:
|
||||
* delete patch cffi-loader.patch; included upstream
|
||||
|
||||
- update to version 1.11.4:
|
||||
* Windows: reverted linking with python3.dll, because virtualenv
|
||||
does not make this DLL available to virtual environments for
|
||||
now. See Issue #355. On Windows only, the C extension modules
|
||||
created by cffi follow for now the standard naming scheme
|
||||
foo.cp36-win32.pyd, to make it clear that they are regular CPython
|
||||
modules depending on python36.dll.
|
||||
|
||||
- changes from version 1.11.3:
|
||||
* Fix on CPython 3.x: reading the attributes __loader__ or __spec__
|
||||
from the cffi-generated lib modules gave a buggy
|
||||
SystemError. (These attributes are always None, and provided only
|
||||
to help compatibility with tools that expect them in all modules.)
|
||||
* More Windows fixes: workaround for MSVC not supporting large
|
||||
literal strings in C code (from
|
||||
ffi.embedding_init_code(large_string)); and an issue with
|
||||
Py_LIMITED_API linking with python35.dll/python36.dll instead of
|
||||
python3.dll.
|
||||
* Small documentation improvements.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 18 13:35:08 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Add patch cffi-loader.patch to fix bsc#1070737
|
||||
- Sort out with spec-cleaner
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 3 15:56:32 UTC 2017 - arun@gmx.de
|
||||
|
||||
- update to version 1.11.2:
|
||||
* Fix Windows issue with managing the thread-state on CPython 3.0 to
|
||||
3.5
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 4 11:36:56 UTC 2017 - sean.marlow@suse.com
|
||||
|
||||
- Update pytest in spec to add c directory tests in addition to
|
||||
testing directory.
|
||||
- Omit test_init_once_multithread tests as they rely on multiple
|
||||
threads finishing in a given time. Returns sporadic pass/fail
|
||||
within build.
|
||||
- Update to 1.11.1:
|
||||
* Fix tests, remove deprecated C API usage
|
||||
* Fix (hack) for 3.6.0/3.6.1/3.6.2 giving incompatible binary
|
||||
extensions (cpython issue #29943)
|
||||
* Fix for 3.7.0a1+
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 28 15:00:46 UTC 2017 - sean.marlow@suse.com
|
||||
|
||||
- Update to 1.11.0:
|
||||
* Support the modern standard types char16_t and char32_t. These
|
||||
work like wchar_t: they represent one unicode character, or when
|
||||
used as charN_t * or charN_t[] they represent a unicode string.
|
||||
The difference with wchar_t is that they have a known, fixed
|
||||
size. They should work at all places that used to work with
|
||||
wchar_t (please report an issue if I missed something). Note
|
||||
that with set_source(), you need to make sure that these types
|
||||
are actually defined by the C source you provide (if used in
|
||||
cdef()).
|
||||
* Support the C99 types float _Complex and double _Complex. Note
|
||||
that libffi doesn’t support them, which means that in the ABI
|
||||
mode you still cannot call C functions that take complex
|
||||
numbers directly as arguments or return type.
|
||||
* Fixed a rare race condition when creating multiple FFI instances
|
||||
from multiple threads. (Note that you aren’t meant to create
|
||||
many FFI instances: in inline mode, you should write
|
||||
ffi = cffi.FFI() at module level just after import cffi; and in
|
||||
out-of-line mode you don’t instantiate FFI explicitly at all.)
|
||||
* Windows: using callbacks can be messy because the CFFI internal
|
||||
error messages show up to stderr—but stderr goes nowhere in many
|
||||
applications. This makes it particularly hard to get started
|
||||
with the embedding mode. (Once you get started, you can at least
|
||||
use @ffi.def_extern(onerror=...) and send the error logs where
|
||||
it makes sense for your application, or record them in log
|
||||
files, and so on.) So what is new in CFFI is that now, on
|
||||
Windows CFFI will try to open a non-modal MessageBox (in addition
|
||||
to sending raw messages to stderr). The MessageBox is only
|
||||
visible if the process stays alive: typically, console
|
||||
applications that crash close immediately, but that is also the
|
||||
situation where stderr should be visible anyway.
|
||||
* Progress on support for callbacks in NetBSD.
|
||||
* Functions returning booleans would in some case still return 0
|
||||
or 1 instead of False or True. Fixed.
|
||||
* ffi.gc() now takes an optional third parameter, which gives an
|
||||
estimate of the size (in bytes) of the object. So far, this is
|
||||
only used by PyPy, to make the next GC occur more quickly
|
||||
(issue #320). In the future, this might have an effect on
|
||||
CPython too (provided the CPython issue 31105 is addressed).
|
||||
* Add a note to the documentation: the ABI mode gives function
|
||||
objects that are slower to call than the API mode does. For
|
||||
some reason it is often thought to be faster. It is not!
|
||||
- Update to 1.10.1:
|
||||
* Fixed the line numbers reported in case of cdef() errors. Also,
|
||||
I just noticed, but pycparser always supported the preprocessor
|
||||
directive # 42 "foo.h" to mean “from the next line, we’re in
|
||||
file foo.h starting from line 42”, which it puts in the error
|
||||
messages.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 29 16:03:46 UTC 2017 - tbechtold@suse.com
|
||||
|
||||
- update to 1.10.0:
|
||||
* Issue #295: use calloc() directly instead of PyObject_Malloc()+memset()
|
||||
to handle ffi.new() with a default allocator. Speeds up ffi.new(large-array)
|
||||
where most of the time you never touch most of the array.
|
||||
* Some OS/X build fixes (“only with Xcode but without CLT”).
|
||||
* Improve a couple of error messages: when getting mismatched versions of
|
||||
cffi and its backend; and when calling functions which cannot be called with
|
||||
libffi because an argument is a struct that is “too complicated” (and not
|
||||
a struct pointer, which always works).
|
||||
* Add support for some unusual compilers (non-msvc, non-gcc, non-icc, non-clang)
|
||||
* Implemented the remaining cases for ffi.from_buffer. Now all
|
||||
buffer/memoryview objects can be passed. The one remaining check is against
|
||||
passing unicode strings in Python 2. (They support the buffer interface, but
|
||||
that gives the raw bytes behind the UTF16/UCS4 storage, which is most of the
|
||||
times not what you expect. In Python 3 this has been fixed and the unicode
|
||||
strings don’t support the memoryview interface any more.)
|
||||
* The C type _Bool or bool now converts to a Python boolean when reading,
|
||||
instead of the content of the byte as an integer. The potential
|
||||
incompatibility here is what occurs if the byte contains a value different
|
||||
from 0 and 1. Previously, it would just return it; with this change, CFFI
|
||||
raises an exception in this case. But this case means “undefined behavior”
|
||||
in C; if you really have to interface with a library relying on this,
|
||||
don’t use bool in the CFFI side. Also, it is still valid to use a byte
|
||||
string as initializer for a bool[], but now it must only contain \x00 or
|
||||
\x01. As an aside, ffi.string() no longer works on bool[] (but it never made
|
||||
much sense, as this function stops at the first zero).
|
||||
* ffi.buffer is now the name of cffi’s buffer type, and ffi.buffer() works
|
||||
like before but is the constructor of that type.
|
||||
* ffi.addressof(lib, "name") now works also in in-line mode, not only in
|
||||
out-of-line mode. This is useful for taking the address of global variables.
|
||||
* Issue #255: cdata objects of a primitive type (integers, floats, char) are
|
||||
now compared and ordered by value. For example, <cdata 'int' 42> compares
|
||||
equal to 42 and <cdata 'char' b'A'> compares equal to b'A'. Unlike C,
|
||||
<cdata 'int' -1> does not compare equal to ffi.cast("unsigned int", -1): it
|
||||
compares smaller, because -1 < 4294967295.
|
||||
* PyPy: ffi.new() and ffi.new_allocator()() did not record “memory pressure”,
|
||||
causing the GC to run too infrequently if you call ffi.new() very often
|
||||
and/or with large arrays. Fixed in PyPy 5.7.
|
||||
* Support in ffi.cdef() for numeric expressions with + or -. Assumes that
|
||||
there is no overflow; it should be fixed first before we add more general
|
||||
support for arbitrary arithmetic on constants.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 27 11:50:31 UTC 2017 - jmatejek@suse.com
|
||||
|
||||
- do not generate HTML documentation for packages that are indirect
|
||||
dependencies of Sphinx
|
||||
(see docs at https://cffi.readthedocs.org/ )
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 16 17:33:16 UTC 2017 - jmatejek@suse.com
|
||||
|
||||
- update to 1.9.1
|
||||
- Structs with variable-sized arrays as their last field: now we track the
|
||||
length of the array after ffi.new() is called, just like we always tracked
|
||||
the length of ffi.new("int[]", 42). This lets us detect out-of-range
|
||||
accesses to array items. This also lets us display a better repr(), and
|
||||
have the total size returned by ffi.sizeof() and ffi.buffer(). Previously
|
||||
both functions would return a result based on the size of the declared
|
||||
structure type, with an assumed empty array. (Thanks andrew for starting
|
||||
this refactoring.)
|
||||
- Add support in cdef()/set_source() for unspecified-length arrays in
|
||||
typedefs: typedef int foo_t[...];. It was already supported for global
|
||||
variables or structure fields.
|
||||
- I turned in v1.8 a warning from cffi/model.py into an error: 'enum xxx' has
|
||||
no values explicitly defined: refusing to guess which integer type it is
|
||||
meant to be (unsigned/signed, int/long). Now I’m turning it back to a
|
||||
warning again; it seems that guessing that the enum has size int is a
|
||||
99%-safe bet. (But not 100%, so it stays as a warning.)
|
||||
- Fix leaks in the code handling FILE * arguments. In CPython 3 there is a
|
||||
remaining issue that is hard to fix: if you pass a Python file object to a
|
||||
FILE * argument, then os.dup() is used and the new file descriptor is only
|
||||
closed when the GC reclaims the Python file object—and not at the earlier
|
||||
time when you call close(), which only closes the original file descriptor.
|
||||
If this is an issue, you should avoid this automatic convertion of Python
|
||||
file objects: instead, explicitly manipulate file descriptors and call
|
||||
fdopen() from C (...via cffi).
|
||||
- When passing a void * argument to a function with a different pointer type,
|
||||
or vice-versa, the cast occurs automatically, like in C. The same occurs
|
||||
for initialization with ffi.new() and a few other places. However, I
|
||||
thought that char * had the same property—but I was mistaken. In C you get
|
||||
the usual warning if you try to give a char * to a char ** argument, for
|
||||
example. Sorry about the confusion. This has been fixed in CFFI by giving
|
||||
for now a warning, too. It will turn into an error in a future version.
|
||||
- Issue #283: fixed ffi.new() on structures/unions with nested anonymous
|
||||
structures/unions, when there is at least one union in the mix. When
|
||||
initialized with a list or a dict, it should now behave more closely like
|
||||
the { } syntax does in GCC.
|
||||
- CPython 3.x: experimental: the generated C extension modules now use the
|
||||
“limited API”, which means that, as a compiled .so/.dll, it should work
|
||||
directly on any version of CPython >= 3.2. The name produced by distutils
|
||||
is still version-specific. To get the version-independent name, you can
|
||||
rename it manually to NAME.abi3.so, or use the very recent setuptools 26.
|
||||
- Added ffi.compile(debug=...), similar to python setup.py build --debug but
|
||||
defaulting to True if we are running a debugging version of Python itself.
|
||||
- Removed the restriction that ffi.from_buffer() cannot be used on byte
|
||||
strings. Now you can get a char * out of a byte string, which is valid as
|
||||
long as the string object is kept alive. (But don’t use it to modify the
|
||||
string object! If you need this, use bytearray or other official
|
||||
techniques.)
|
||||
- PyPy 5.4 can now pass a byte string directly to a char * argument (in older
|
||||
versions, a copy would be made). This used to be a CPython-only
|
||||
optimization.
|
||||
- ffi.gc(p, None) removes the destructor on an object previously created by
|
||||
another call to ffi.gc()
|
||||
- bool(ffi.cast("primitive type", x)) now returns False if the value is zero
|
||||
(including -0.0), and True otherwise. Previously this would only return
|
||||
False for cdata objects of a pointer type when the pointer is NULL.
|
||||
- bytearrays: ffi.from_buffer(bytearray-object) is now supported. (The reason
|
||||
it was not supported was that it was hard to do in PyPy, but it works since
|
||||
PyPy 5.3.) To call a C function with a char * argument from a buffer
|
||||
object—now including bytearrays—you write lib.foo(ffi.from_buffer(x)).
|
||||
Additionally, this is now supported: p[0:length] = bytearray-object. The
|
||||
problem with this was that a iterating over bytearrays gives numbers
|
||||
instead of characters. (Now it is implemented with just a memcpy, of
|
||||
course, not actually iterating over the characters.)
|
||||
- C++: compiling the generated C code with C++ was supposed to work, but
|
||||
failed if you make use the bool type (because that is rendered as the C
|
||||
_Bool type, which doesn’t exist in C++).
|
||||
- help(lib) and help(lib.myfunc) now give useful information, as well as
|
||||
dir(p) where p is a struct or pointer-to-struct.
|
||||
- drop upstreamed python-cffi-avoid-bitshifting-negative-int.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 6 14:39:52 UTC 2016 - jmatejek@suse.com
|
||||
|
||||
- update for multipython build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 29 05:23:27 UTC 2016 - badshah400@gmail.com
|
||||
|
||||
- Add python-cffi-avoid-bitshifting-negative-int.patch to actually
|
||||
fix the "negative left shift" warning by replacing bitshifting
|
||||
in appropriate places by bitwise and comparison to self; patch
|
||||
taken from upstream git. Drop cffi-1.5.2-wnoerror.patch: no
|
||||
longer required.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 27 13:00:22 UTC 2016 - jmatejek@suse.com
|
||||
|
||||
- disable "negative left shift" warning in test suite to prevent
|
||||
failures with gcc6, until upstream fixes the undefined code
|
||||
in question (boo#981848, cffi-1.5.2-wnoerror.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 26 02:33:02 UTC 2016 - badshah400@gmail.com
|
||||
|
||||
- Update to version 1.6.0:
|
||||
* ffi.list_types()
|
||||
* ffi.unpack()
|
||||
* extern “Python+C”
|
||||
* in API mode, lib.foo.__doc__ contains the C signature now.
|
||||
* Yet another attempt at robustness of ffi.def_extern() against
|
||||
CPython’s interpreter shutdown logic.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 11 14:45:11 UTC 2016 - jmatejek@suse.com
|
||||
|
||||
- update to 1.5.2
|
||||
* support for cffi-based embedding
|
||||
* more robustness for shutdown logic
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 9 17:18:52 UTC 2016 - michael@stroeder.com
|
||||
|
||||
- update to version 1.4.2:
|
||||
* Nothing changed from v1.4.1.
|
||||
- changes from version 1.4.1:
|
||||
* Fix the compilation failure of cffi on CPython 3.5.0. (3.5.1
|
||||
works; some detail changed that makes some underscore-starting
|
||||
macros disappear from view of extension modules, and I worked
|
||||
around it, thinking it changed in all 3.5 versions—but no: it was
|
||||
only in 3.5.1.)
|
||||
- changes from version 1.4.0:
|
||||
* A better way to do callbacks has been added (faster and more
|
||||
portable, and usually cleaner). It is a mechanism for the
|
||||
out-of-line API mode that replaces the dynamic creation of
|
||||
callback objects (i.e. C functions that invoke Python) with the
|
||||
static declaration in cdef() of which callbacks are needed. This
|
||||
is more C-like, in that you have to structure your code around the
|
||||
idea that you get a fixed number of function pointers, instead of
|
||||
creating them on-the-fly.
|
||||
* ffi.compile() now takes an optional verbose argument. When True,
|
||||
distutils prints the calls to the compiler.
|
||||
* ffi.compile() used to fail if given sources with a path that
|
||||
includes "..". Fixed.
|
||||
* ffi.init_once() added. See docs.
|
||||
* dir(lib) now works on libs returned by ffi.dlopen() too.
|
||||
* Cleaned up and modernized the content of the demo subdirectory in
|
||||
the sources (thanks matti!).
|
||||
* ffi.new_handle() is now guaranteed to return unique void * values,
|
||||
even if called twice on the same object. Previously, in that case,
|
||||
CPython would return two cdata objects with the same void *
|
||||
value. This change is useful to add and remove handles from a
|
||||
global dict (or set) without worrying about duplicates. It already
|
||||
used to work like that on PyPy. This change can break code that
|
||||
used to work on CPython by relying on the object to be kept alive
|
||||
by other means than keeping the result of ffi.new_handle()
|
||||
alive. (The corresponding warning in the docs of ffi.new_handle()
|
||||
has been here since v0.8!)
|
||||
- changes from version 1.3.1:
|
||||
* The optional typedefs (bool, FILE and all Windows types) were not
|
||||
always available from out-of-line FFI objects.
|
||||
* Opaque enums are phased out from the cdefs: they now give a
|
||||
warning, instead of (possibly wrongly) being assumed equal to
|
||||
unsigned int. Please report if you get a reasonable use case for
|
||||
them.
|
||||
* Some parsing details, notably volatile is passed along like const
|
||||
and restrict. Also, older versions of pycparser mis-parse some
|
||||
pointer-to-pointer types like char * const *: the “const” ends up
|
||||
at the wrong place. Added a workaround.
|
||||
- changes from version 1.3.0:
|
||||
* Added ffi.memmove().
|
||||
* Pull request #64: out-of-line API mode: we can now declare
|
||||
floating-point types with typedef float... foo_t;. This only works
|
||||
if foo_t is a float or a double, not long double.
|
||||
* Issue #217: fix possible unaligned pointer manipulation, which
|
||||
crashes on some architectures (64-bit, non-x86).
|
||||
* Issues #64 and #126: when using set_source() or verify(), the
|
||||
const and restrict keywords are copied from the cdef to the
|
||||
generated C code; this fixes warnings by the C compiler. It also
|
||||
fixes corner cases like typedef const int T; T a; which would
|
||||
previously not consider a as a constant. (The cdata objects
|
||||
themselves are never const.)
|
||||
* Win32: support for __stdcall. For callbacks and function pointers;
|
||||
regular C functions still don’t need to have their calling
|
||||
convention declared.
|
||||
* Windows: CPython 2.7 distutils doesn’t work with Microsoft’s
|
||||
official Visual Studio for Python, and I’m told this is not a
|
||||
bug. For ffi.compile(), we removed a workaround that was inside
|
||||
cffi but which had unwanted side-effects. Try saying import
|
||||
setuptools first, which patches distutils...
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 17 11:28:00 UTC 2015 - p.drouand@gmail.com
|
||||
|
||||
- Update to version 1.2.1
|
||||
* No changes entry for this version
|
||||
- Changes from version 1.2.0
|
||||
* Out-of-line mode: ``int a[][...];`` can be used to declare a structure
|
||||
field or global variable which is, simultaneously, of total length
|
||||
unknown to the C compiler (the ``a[]`` part) and each element is
|
||||
itself an array of N integers, where the value of N *is * known to the
|
||||
C compiler (the ``int`` and ``[...]`` parts around it). Similarly,
|
||||
``int a[5][...];`` is supported (but probably less useful: remember
|
||||
that in C it means ``int (a[5])[...];``).
|
||||
* PyPy: the ``lib.some_function`` objects were missing the attributes
|
||||
``__name__``, ``__module__`` and ``__doc__`` that are expected e.g. by
|
||||
some decorators-management functions from ``functools``.
|
||||
* Out-of-line API mode: you can now do ``from _example.lib import x``
|
||||
to import the name ``x`` from ``_example.lib``, even though the
|
||||
``lib`` object is not a standard module object. (Also works in ``from
|
||||
_example.lib import *``, but this is even more of a hack and will fail
|
||||
if ``lib`` happens to declare a name called ``__all__``. Note that
|
||||
`` *`` excludes the global variables; only the functions and constants
|
||||
make sense to import like this.)
|
||||
* ``lib.__dict__`` works again and gives you a copy of the
|
||||
dict---assuming that ``lib`` has got no symbol called precisely
|
||||
``__dict__``. (In general, it is safer to use ``dir(lib)``.)
|
||||
* Out-of-line API mode: global variables are now fetched on demand at
|
||||
every access. It fixes issue #212 (Windows DLL variables), and also
|
||||
allows variables that are defined as dynamic macros (like ``errno``)
|
||||
or ``__thread`` -local variables. (This change might also tighten
|
||||
the C compiler's check on the variables' type.)
|
||||
* Issue #209: dereferencing NULL pointers now raises RuntimeError
|
||||
instead of segfaulting. Meant as a debugging aid. The check is
|
||||
only for NULL: if you dereference random or dead pointers you might
|
||||
still get segfaults.
|
||||
* Issue #152: callbacks__: added an argument ``ffi.callback(...,
|
||||
onerror=...)``. If the main callback function raises an exception
|
||||
and ``onerror`` is provided, then ``onerror(exception, exc_value,
|
||||
traceback)`` is called. This is similar to writing a ``try:
|
||||
except:`` in the main callback function, but in some cases (e.g. a
|
||||
signal) an exception can occur at the very start of the callback
|
||||
function---before it had time to enter the ``try: except:`` block.
|
||||
* Issue #115: added ``ffi.new_allocator()``, which officializes
|
||||
support for `alternative allocators`__.
|
||||
.. __: using.html#callbacks
|
||||
.. __: using.html#alternative-allocators
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 1 18:13:10 UTC 2015 - benoit.monin@gmx.fr
|
||||
|
||||
- update to version 1.1.0 (fate#318838):
|
||||
* Out-of-line API mode: we can now declare integer types with
|
||||
typedef int... foo_t;. The exact size and signedness of foo_t
|
||||
is figured out by the compiler.
|
||||
* Out-of-line API mode: we can now declare multidimensional
|
||||
arrays (as fields or as globals) with int n[...][...]. Before,
|
||||
only the outermost dimension would support the ... syntax.
|
||||
* Out-of-line ABI mode: we now support any constant declaration,
|
||||
instead of only integers whose value is given in the cdef. Such
|
||||
“new” constants, i.e. either non-integers or without a value
|
||||
given in the cdef, must correspond to actual symbols in the
|
||||
lib. At runtime they are looked up the first time we access
|
||||
them. This is useful if the library defines extern const
|
||||
sometype somename;.
|
||||
* ffi.addressof(lib, "func_name") now returns a regular cdata
|
||||
object of type “pointer to function”. You can use it on any
|
||||
function from a library in API mode (in ABI mode, all functions
|
||||
are already regular cdata objects). To support this, you need
|
||||
to recompile your cffi modules.
|
||||
* Issue #198: in API mode, if you declare constants of a struct
|
||||
type, what you saw from lib.CONSTANT was corrupted.
|
||||
* Issue #196: ffi.set_source("package._ffi", None) would
|
||||
incorrectly generate the Python source to package._ffi.py
|
||||
instead of package/_ffi.py. Also fixed: in some cases, if the C
|
||||
file was in build/foo.c, the .o file would be put in
|
||||
build/build/foo.o.
|
||||
- additional changes from version 1.0.3:
|
||||
* Same as 1.0.2, apart from doc and test fixes on some platforms
|
||||
- additional changes from version 1.0.2:
|
||||
* Variadic C functions (ending in a ”...” argument) were not
|
||||
supported in the out-of-line ABI mode. This was a bug—there was
|
||||
even a (non-working) example doing exactly that!
|
||||
- additional changes from version 1.0.1:
|
||||
* ffi.set_source() crashed if passed a sources=[..] argument.
|
||||
Fixed by chrippa on pull request #60.
|
||||
* Issue #193: if we use a struct between the first cdef() where
|
||||
it is declared and another cdef() where its fields are defined,
|
||||
then this definition was ignored.
|
||||
* Enums were buggy if you used too many ”...” in their definition
|
||||
- additional changes from version 1.0.0:
|
||||
* The main news item is out-of-line module generation:
|
||||
+ for ABI level, with ffi.dlopen()
|
||||
+ for API level, which used to be with ffi.verify(), now
|
||||
deprecated
|
||||
- add python-cffi-rpmlintrc: cffi specifically installs C headers
|
||||
in site-packages
|
||||
- add new test dependency gcc-c++
|
||||
- skip the tests on SLE11 since they fail on i586
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 23 06:33:12 UTC 2015 - mcihar@suse.cz
|
||||
|
||||
- Update to 0.9.2
|
||||
* No upstream changelog
|
||||
See https://bitbucket.org/cffi/cffi/commits/all for a list of
|
||||
commits
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 26 12:40:34 UTC 2014 - toddrme2178@gmail.com
|
||||
|
||||
- Update to 0.8.6
|
||||
* No upstream changelog
|
||||
See https://bitbucket.org/cffi/cffi/commits/all for a list of
|
||||
commits
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 19 16:35:30 UTC 2014 - jmatejek@suse.com
|
||||
|
||||
- update to 0.8.2
|
||||
* minor bugfixes
|
||||
- remove cffi-pytest-integration.patch as it is no longer necessary
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 31 14:18:44 UTC 2014 - speilicke@suse.com
|
||||
|
||||
- Require libffi43-devel on SLE_11_SP2 instead of using pkg-config to fix build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 12:09:15 UTC 2014 - mvyskocil@suse.com
|
||||
|
||||
- update to 0.8.1
|
||||
* fixes on Python 3 on OS/X, and some FreeBSD fixes (thanks Tobias)
|
||||
- added a note wrt disabled tests
|
||||
- add cffi-pytest-integration.patch: allowinf call pytest from setup.py
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 18 14:33:39 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- update to 0.8
|
||||
* integrated support for C99 variable-sized structures
|
||||
* multi-thread safety
|
||||
* ffi.getwinerror()
|
||||
* a number of small fixes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 24 10:59:45 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Require python-setuptools instead of distribute (upstreams merged)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 30 07:51:11 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- use pkgconfig(libffi) to get the most recent ffi
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 19 13:27:16 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Update to 0.7.2
|
||||
* add implicit bool
|
||||
* standard names are handled as defaults in cdef declarations
|
||||
* enum types follow GCC rules and not just int
|
||||
* supports simple slices x[start:stop]
|
||||
* enums are handled like ints
|
||||
* new ffi.new_handle(python_object)
|
||||
* and various bugfixes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 10 09:28:56 UTC 2013 - saschpe@suse.de
|
||||
|
||||
- Initial version
|
||||
|
66
python-cffi.spec
Normal file
66
python-cffi.spec
Normal file
@ -0,0 +1,66 @@
|
||||
#
|
||||
# spec file for package python-cffi
|
||||
#
|
||||
# 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
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-cffi
|
||||
Version: 1.15.1
|
||||
Release: 0
|
||||
Summary: Foreign Function Interface for Python calling C code
|
||||
License: MIT
|
||||
URL: https://cffi.readthedocs.org
|
||||
Source0: https://files.pythonhosted.org/packages/source/c/cffi/cffi-%{version}.tar.gz
|
||||
Source1: python-cffi-rpmlintrc
|
||||
Patch1: https://foss.heptapod.net/pypy/cffi/-/commit/8a3c2c816d789639b49d3ae867213393ed7abdff.patch
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module pycparser}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module py}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: pkgconfig(libffi)
|
||||
Requires: python-pycparser
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
Foreign Function Interface for Python calling C code. The aim of this project
|
||||
is to provide a convenient and reliable way of calling C code from Python.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n cffi-%{version}
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
%python_build
|
||||
|
||||
%install
|
||||
%python_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%check
|
||||
%pytest_arch -W ignore::UserWarning c/ testing/
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
%doc README.md doc/source/*.rst doc/misc/*.rst
|
||||
%{python_sitearch}/*
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user