Accepting request 567429 from devel:languages:python

- Add patch cffi-loader.patch to fix bsc#1070737
- Sort out with spec-cleaner

OBS-URL: https://build.opensuse.org/request/show/567429
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cffi?expand=0&rev=19
This commit is contained in:
Dominique Leuenberger 2018-01-20 10:20:12 +00:00 committed by Git OBS Bridge
commit 09058d2a56
3 changed files with 60 additions and 10 deletions

45
cffi-loader.patch Normal file
View File

@ -0,0 +1,45 @@
# HG changeset patch
# User Armin Rigo <arigo@tunes.org>
# Date 1515619092 -3600
# Node ID d16706e3c2da4ff29729c312b96af5cc251f82c4
# Parent a570b34ac8a60becdbc4a3404c737d03b4691353
Issue #352
Oops.
diff --git a/c/lib_obj.c b/c/lib_obj.c
--- a/c/lib_obj.c
+++ b/c/lib_obj.c
@@ -505,6 +505,7 @@
return x;
missing:
+ /*** ATTRIBUTEERROR IS SET HERE ***/
p = PyText_AsUTF8(name);
if (p == NULL)
return NULL;
@@ -534,6 +535,7 @@
#if PY_MAJOR_VERSION >= 3
if (strcmp(p, "__loader__") == 0 || strcmp(p, "__spec__") == 0) {
/* some more module-like behavior hacks */
+ PyErr_Clear();
Py_INCREF(Py_None);
return Py_None;
}
diff --git a/testing/cffi1/test_recompiler.py b/testing/cffi1/test_recompiler.py
--- a/testing/cffi1/test_recompiler.py
+++ b/testing/cffi1/test_recompiler.py
@@ -2287,3 +2287,13 @@
def test_char16_char32_plain_c():
test_char16_char32_type(no_cpp=True)
+
+def test_loader_spec():
+ ffi = FFI()
+ lib = verify(ffi, "test_loader_spec", "")
+ if sys.version_info < (3,):
+ assert not hasattr(lib, '__loader__')
+ assert not hasattr(lib, '__spec__')
+ else:
+ assert lib.__loader__ is None
+ assert lib.__spec__ is None

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
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

View File

@ -1,7 +1,7 @@
#
# spec file for package python-cffi
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -25,19 +25,18 @@ Summary: Foreign Function Interface for Python calling C code
License: MIT
Group: Development/Languages/Python
Url: http://%{modname}.readthedocs.org
Source0: https://files.pythonhosted.org/packages/source/c/%{modname}/%{modname}-%{version}.tar.gz
Source0: https://files.pythonhosted.org/packages/source/c/cffi/%{modname}-%{version}.tar.gz
Source1: python-cffi-rpmlintrc
Patch0: cffi-loader.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: gcc-c++
BuildRequires: python-rpm-macros
# Documentation requirements:
BuildRequires: %{python_module pycparser}
BuildRequires: %{python_module pytest}
Requires: python-pycparser
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: %{python_module setuptools}
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(libffi)
Requires: python-pycparser
%python_subpackages
%description
@ -46,6 +45,7 @@ is to provide a convenient and reliable way of calling C code from Python.
%prep
%setup -q -n %{modname}-%{version}
%patch0 -p1
%build
export CFLAGS="%{optflags}"
@ -58,7 +58,6 @@ export CFLAGS="%{optflags}"
%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} py.test-%$python_bin_suffix -k "not test_init_once_multithread" c/ testing/
%files %{python_files}
%defattr(-,root,root,-)
%doc LICENSE
%{python_sitearch}/*