File python-cffi.spec of Package python-cffi
%{?vortex_header}%{!?vortex_header:%global vortex_pkg vortex-2024-07}
Name: python-cffi
Version: 1.16.0
Release: %autorelease
Summary: Foreign Function Interface for Python to call C code
# cffi is MIT
# cffi/_imp_emulation.py has bits copied from CPython (PSF-2.0)
License: MIT AND PSF-2.0
URL: https://github.com/python-cffi/cffi
Source: %{url}/archive/v%{version}/cffi-%{version}.tar.gz
# Use PyErr_FormatUnraisable() on Python 3.13+
# The private _PyErr_WriteUnraisableMsg() function was removed.
# Merged upstream.
Patch: https://github.com/python-cffi/cffi/commit/49127c6929.patch
# Update unraisable tests to use sys.unraisablehook (for Python 3.13+ compatibility)
# From https://github.com/python-cffi/cffi/pull/24 -- proposed upstream.
Patch: https://github.com/python-cffi/cffi/commit/364621f848.patch
BuildRequires: %{vortex_pkg}-python3-devel
BuildRequires: %{vortex_pkg}-python3-pytest
BuildRequires: make
BuildRequires: libffi-devel
BuildRequires: gcc
# For tests:
BuildRequires: gcc-c++
%description
Foreign Function Interface for Python, providing a convenient and
reliable way of calling existing C code from Python. The interface is
based on LuaJIT’s FFI.
%package -n %{vortex_pkg}-python3-cffi
Summary: %{summary}
%description -n %{vortex_pkg}-python3-cffi
Foreign Function Interface for Python, providing a convenient and
reliable way of calling existing C code from Python. The interface is
based on LuaJIT’s FFI.
%package doc
Summary: Documentation for CFFI
BuildArch: noarch
BuildRequires: %{vortex_pkg}-python3-sphinx
%description doc
Documentation for CFFI, the Foreign Function Interface for Python.
%prep
%autosetup -p1 -n cffi-%{version}
%generate_buildrequires
%pyproject_buildrequires
%build
%pyproject_wheel
cd doc
make html
rm build/html/.buildinfo
%install
%pyproject_install
%pyproject_save_files _cffi_backend cffi
%check
#pytest
%files -n %{vortex_pkg}-python3-cffi -f %{pyproject_files}
%doc README.md
%files doc
%license LICENSE
%doc doc/build/html
%changelog
%autochangelog