From ed3160c620853e915ac57e9a05189fba2d38bb72 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Tue, 26 Nov 2024 18:52:24 +0300 Subject: [PATCH] import python-cffi-1.16.0-5.el10 --- .gitignore | 1 + .python-cffi.metadata | 1 + SOURCES/364621f848.patch | 266 +++++++++++++++++++++++++++ SOURCES/49127c6929.patch | 30 +++ SPECS/python-cffi.spec | 386 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 684 insertions(+) create mode 100644 .gitignore create mode 100644 .python-cffi.metadata create mode 100644 SOURCES/364621f848.patch create mode 100644 SOURCES/49127c6929.patch create mode 100644 SPECS/python-cffi.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..320110f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/cffi-1.16.0.tar.gz diff --git a/.python-cffi.metadata b/.python-cffi.metadata new file mode 100644 index 0000000..6eea430 --- /dev/null +++ b/.python-cffi.metadata @@ -0,0 +1 @@ +907c177687fc820052ae26b77bf519e92e683527 SOURCES/cffi-1.16.0.tar.gz diff --git a/SOURCES/364621f848.patch b/SOURCES/364621f848.patch new file mode 100644 index 0000000..7f95352 --- /dev/null +++ b/SOURCES/364621f848.patch @@ -0,0 +1,266 @@ +From 364621f8489d85c29b26fa5e754aaf2a5f8279fe Mon Sep 17 00:00:00 2001 +From: Matt Davis +Date: Mon, 16 Oct 2023 17:53:28 -0700 +Subject: [PATCH] update unraisable tests to use sys.unraisablehook + +* assert shape of calls to unraisablehook and sanity check traceback contents instead of (varying) stderr output from default unraisablehook impl +--- + src/c/test_c.py | 217 +++++++++++++++--------------------------------- + 1 file changed, 69 insertions(+), 148 deletions(-) + +diff --git a/src/c/test_c.py b/src/c/test_c.py +index 1cdab10f..10cc35cf 100644 +--- a/src/c/test_c.py ++++ b/src/c/test_c.py +@@ -1,5 +1,12 @@ ++from __future__ import annotations ++ ++import contextlib ++import traceback ++import unittest.mock ++ + import pytest + import sys ++import typing as t + + is_musl = False + if sys.platform == 'linux': +@@ -1337,27 +1344,37 @@ def cb(n): + e = pytest.raises(TypeError, f) + assert str(e.value) == "'int(*)(int)' expects 1 arguments, got 0" + ++@contextlib.contextmanager ++def _assert_unraisable(error_type: type[Exception] | None, message: str = '', traceback_tokens: list[str] | None = None): ++ """Assert that a given sys.unraisablehook interaction occurred (or did not occur, if error_type is None) while this context was active""" ++ raised_errors: list[Exception] = [] ++ raised_traceback: str = '' ++ ++ # sys.unraisablehook is called more than once for chained exceptions; accumulate the errors and tracebacks for inspection ++ def _capture_unraisable_hook(ur_args): ++ nonlocal raised_traceback ++ raised_errors.append(ur_args.exc_value) ++ ++ # NB: need to use the old etype/value/tb form until 3.10 is the minimum ++ raised_traceback += (ur_args.err_msg or '' + '\n') + ''.join(traceback.format_exception(None, ur_args.exc_value, ur_args.exc_traceback)) ++ ++ ++ with pytest.MonkeyPatch.context() as mp: ++ mp.setattr(sys, 'unraisablehook', _capture_unraisable_hook) ++ yield ++ ++ if error_type is None: ++ assert not raised_errors ++ assert not raised_traceback ++ return ++ ++ assert any(type(raised_error) is error_type for raised_error in raised_errors) ++ assert any(message in str(raised_error) for raised_error in raised_errors) ++ for t in traceback_tokens or []: ++ assert t in raised_traceback ++ ++ + def test_callback_exception(): +- try: +- import cStringIO +- except ImportError: +- import io as cStringIO # Python 3 +- import linecache +- def matches(istr, ipattern, ipattern38, ipattern311=None): +- if sys.version_info >= (3, 8): +- ipattern = ipattern38 +- if sys.version_info >= (3, 11): +- ipattern = ipattern311 or ipattern38 +- str, pattern = istr, ipattern +- while '$' in pattern: +- i = pattern.index('$') +- assert str[:i] == pattern[:i] +- j = str.find(pattern[i+1], i) +- assert i + 1 <= j <= str.find('\n', i) +- str = str[j:] +- pattern = pattern[i+1:] +- assert str == pattern +- return True + def check_value(x): + if x == 10000: + raise ValueError(42) +@@ -1366,148 +1383,52 @@ def Zcb1(x): + return x * 3 + BShort = new_primitive_type("short") + BFunc = new_function_type((BShort,), BShort, False) ++ + f = callback(BFunc, Zcb1, -42) +- # + seen = [] + oops_result = None + def oops(*args): + seen.append(args) + return oops_result + ff = callback(BFunc, Zcb1, -42, oops) +- # +- orig_stderr = sys.stderr +- orig_getline = linecache.getline +- try: +- linecache.getline = lambda *args: 'LINE' # hack: speed up PyPy tests +- sys.stderr = cStringIO.StringIO() +- if hasattr(sys, '__unraisablehook__'): # work around pytest +- sys.unraisablehook = sys.__unraisablehook__ # on recent CPythons ++ with _assert_unraisable(None): + assert f(100) == 300 +- assert sys.stderr.getvalue() == '' ++ with _assert_unraisable(ValueError, '42', ['in Zcb1', 'in check_value']): + assert f(10000) == -42 +- assert matches(sys.stderr.getvalue(), """\ +-From cffi callback : +-Traceback (most recent call last): +- File "$", line $, in Zcb1 +- $ +- 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 ++ ++ bigvalue = 20000 ++ with _assert_unraisable(OverflowError, "integer 60000 does not fit 'short'", ['callback', 'Zcb1']): + assert f(bigvalue) == -42 +- assert matches(sys.stderr.getvalue(), """\ +-From cffi callback : +-Trying to convert the result back to C: +-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 +- assert len(seen) == 0 ++ assert len(seen) == 0 ++ ++ with _assert_unraisable(None): + assert ff(bigvalue) == -42 +- assert sys.stderr.getvalue() == "" +- assert len(seen) == 1 +- exc, val, tb = seen[0] +- assert exc is OverflowError +- assert str(val) == "integer 60000 does not fit 'short'" +- # +- sys.stderr = cStringIO.StringIO() +- bigvalue = 20000 +- del seen[:] +- oops_result = 81 ++ assert len(seen) == 1 ++ exc, val, tb = seen[0] ++ assert exc is OverflowError ++ assert str(val) == "integer 60000 does not fit 'short'" ++ ++ del seen[:] ++ oops_result = 81 ++ with _assert_unraisable(None): + assert ff(bigvalue) == 81 +- oops_result = None +- assert sys.stderr.getvalue() == "" +- assert len(seen) == 1 +- exc, val, tb = seen[0] +- assert exc is OverflowError +- assert str(val) == "integer 60000 does not fit 'short'" +- # +- sys.stderr = cStringIO.StringIO() +- bigvalue = 20000 +- del seen[:] +- oops_result = "xy" # not None and not an int! ++ ++ assert len(seen) == 1 ++ exc, val, tb = seen[0] ++ assert exc is OverflowError ++ assert str(val) == "integer 60000 does not fit 'short'" ++ ++ del seen[:] ++ oops_result = "xy" # not None and not an int! ++ ++ with _assert_unraisable(TypeError, "an integer is required", ["integer 60000 does not fit 'short'"]): + assert ff(bigvalue) == -42 +- oops_result = None +- assert matches(sys.stderr.getvalue(), """\ +-From cffi callback : +-Trying to convert the result back to C: +-OverflowError: integer 60000 does not fit 'short' +- +-During the call to 'onerror', another exception occurred: +- +-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() +- seen = "not a list" # this makes the oops() function crash ++ ++ seen = "not a list" # this makes the oops() function crash ++ oops_result = None ++ with _assert_unraisable(AttributeError, "'str' object has no attribute 'append", ['Zcb1', 'ff', 'oops']): + assert ff(bigvalue) == -42 +- # the $ after the AttributeError message are for the suggestions that +- # will be added in Python 3.10 +- assert matches(sys.stderr.getvalue(), """\ +-From cffi callback : +-Trying to convert the result back to C: +-OverflowError: integer 60000 does not fit 'short' +- +-During the call to 'onerror', another exception occurred: +- +-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$ +-""", """\ +-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 +- linecache.getline = orig_getline ++ + + def test_callback_return_type(): + for rettype in ["signed char", "short", "int", "long", "long long", diff --git a/SOURCES/49127c6929.patch b/SOURCES/49127c6929.patch new file mode 100644 index 0000000..90767c3 --- /dev/null +++ b/SOURCES/49127c6929.patch @@ -0,0 +1,30 @@ +From 49127c6929bfc7186fbfd3819dd5e058ad888de4 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Thu, 16 Nov 2023 17:26:12 +0100 +Subject: [PATCH] Use PyErr_FormatUnraisable() on Python 3.13 (#34) + +Use the new public PyErr_FormatUnraisable() on Python 3.13. + +The private _PyErr_WriteUnraisableMsg() function was removed in +Python 3.13: +https://github.com/python/cpython/pull/111643 +--- + src/c/_cffi_backend.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/c/_cffi_backend.c b/src/c/_cffi_backend.c +index 76ed8f09..5e284e00 100644 +--- a/src/c/_cffi_backend.c ++++ b/src/c/_cffi_backend.c +@@ -6118,7 +6118,11 @@ static void _my_PyErr_WriteUnraisable(PyObject *t, PyObject *v, PyObject *tb, + + PyErr_Restore(t, v, tb); + if (s != NULL) { ++#if PY_VERSION_HEX >= 0x030D0000 ++ PyErr_FormatUnraisable("Exception ignored %S", s); ++#else + _PyErr_WriteUnraisableMsg(PyText_AS_UTF8(s), NULL); ++#endif + Py_DECREF(s); + } + else diff --git a/SPECS/python-cffi.spec b/SPECS/python-cffi.spec new file mode 100644 index 0000000..4f49544 --- /dev/null +++ b/SPECS/python-cffi.spec @@ -0,0 +1,386 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.6.1) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 5; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +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: python3-devel +BuildRequires: 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 python3-cffi +Summary: %{summary} + +%description -n 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: 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 python3-cffi -f %{pyproject_files} +%doc README.md + +%files doc +%license LICENSE +%doc doc/build/html + + +%changelog +## START: Generated by rpmautospec +* Mon Jun 24 2024 Troy Dawson - 1.16.0-5 +- Bump release for June 2024 mass rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 1.16.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.16.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Nov 20 2023 Miro Hrončok - 1.16.0-2 +- Python 3.13.0a1+ compatibility + +* Mon Oct 02 2023 Miro Hrončok - 1.16.0-1 +- Update to 1.16.0 +- Fixes: rhbz#2240695 + +* Fri Jul 21 2023 Fedora Release Engineering - 1.15.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 1.15.1-5 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 1.15.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Nov 14 2022 Miro Hrončok - 1.15.1-3 +- Fix build with pytest 7.2 +- Fixes: rhbz#2142063 + +* Fri Jul 22 2022 Fedora Release Engineering - 1.15.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 15 2022 Miro Hrončok - 1.15.1-1 +- Adjust tests for a last minute Python 3.11 change in the traceback format + +* 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 + +* Wed Mar 30 2022 Miro Hrončok - 1.15.0-5 +- Fix alignment issue on ppc64le +- Fixes: rhbz#2046865 + +* Wed Feb 02 2022 Tomáš Hrnčiar - 1.15.0-4 +- Backport patch to fix compatibility with Python 3.11 +- Fixes: rhbz#2040165 + +* Fri Jan 21 2022 Fedora Release Engineering - 1.15.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Jan 08 2022 Miro Hrončok - 1.15.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 + +* Tue Dec 21 2021 Lumír Balhar - 1.15.0-1 +- Update to 1.15.0 +Resolves: rhbz#2013760 + +* Thu Oct 07 2021 Tomáš Hrnčiar - 1.15.0~rc2-1 +- Update to 1.15.0rc2 +Resolves: rhbz#2007006 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.14.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jul 09 2021 Lumír Balhar - 1.14.6-1 +- Update to 1.14.6 +Resolves: rhbz#1980622 + +* Wed Jun 02 2021 Python Maint - 1.14.5-2 +- Rebuilt for Python 3.10 + +* Fri Feb 12 2021 Lumír Balhar - 1.14.5-1 +- Update to 1.14.5 +Resolves: rhbz#1927933 + +* Wed Jan 27 2021 Fedora Release Engineering - 1.14.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Nov 19 2020 Joel Capitao - 1.14.3-1 +- Update to 1.14.3 + +* Tue Sep 08 2020 Lumír Balhar - 1.14.2-1 +- Update to 1.14.2 (#1869032) + +* Fri Aug 14 2020 Miro Hrončok - 1.14.1-1 +- Update to 1.14.1 +- Fixes: rhbz#1860698 +- Fixes: rhbz#1865276 + +* Sat May 23 2020 Miro Hrončok - 1.14.0-2 +- Rebuilt for Python 3.9 + +* Mon Feb 10 2020 Lumír Balhar - 1.14.0 +- Update to 1.14.0 (#1800646) + +* Thu Jan 30 2020 Fedora Release Engineering - 1.13.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Nov 18 2019 Lumír Balhar - 1.13.2-1 +- Update to 1.13.2 (#1768219) + +* Mon Oct 21 2019 Miro Hrončok - 1.13.1-1 +- Update to 1.13.1 (#1763767) + +* Tue Oct 15 2019 Miro Hrončok - 1.13.0-1 +- Update to 1.13.0 (#1761757) + +* Sun Oct 13 2019 Miro Hrončok - 1.12.3-5 +- Subpackage python2-cffi has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Thu Oct 03 2019 Miro Hrončok - 1.12.3-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 26 2019 Miro Hrončok - 1.12.3-3 +- Reduce Python 2 build dependencies + +* Fri Aug 16 2019 Miro Hrončok - 1.12.3-2 +- Rebuilt for Python 3.8 + +* Thu Jul 25 2019 Miro Hrončok - 1.12.3-1 +- Update to 1.12.3 (#1701577) +- https://cffi.readthedocs.io/en/latest/whatsnew.html#v1-12-3 + +* Mon Jul 15 2019 Petr Viktorin - 1.12.2-2 +- Remove unused build dependency on Cython +- Remove duplicate build dependency on pytest + +* Wed Mar 27 2019 Miro Hrončok - 1.12.2-1 +- Update to 1.12.2 (#1677888) + +* Sat Feb 02 2019 Fedora Release Engineering - 1.11.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Aug 22 2018 Miro Hrončok - 1.11.5-6 +- Fix FTBFS (#1605627) + +* Fri Jul 13 2018 Fedora Release Engineering - 1.11.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 15 2018 Miro Hrončok - 1.11.5-4 +- Rebuilt for Python 3.7 + +* Fri May 25 2018 Gwyn Ciesla - 1.11.5-3 +- Disable tests to fix mock-only FTBFS. + +* Fri Mar 09 2018 Iryna Shcherbina - 1.11.5-2 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Mar 02 2018 John Dulaney - 1.11.2-1 +- New release 1.11.5 + +* Fri Feb 09 2018 Igor Gnatenko - 1.11.2-3 +- Escape macros in %%changelog + +* Fri Feb 09 2018 Fedora Release Engineering - 1.11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Oct 19 2017 John Dulaney - 1.11.2-1 +- New release 1.11.0 +- Fix %%check + +* Wed Sep 27 2017 Troy Dawson - 1.11.0-2 +- Cleanup spec file conditionals + +* Sat Sep 23 2017 John Dulaney - 1.11.0-1 +- New release 1.11.0 + +* Thu Aug 03 2017 Fedora Release Engineering - 1.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Apr 04 2017 John Dulaney - 1.10.0-1 +- New release 1.10.0 + +* Sat Feb 11 2017 Fedora Release Engineering - 1.9.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Jan 07 2017 John Dulaney - 1.9.1-1 +- Update to latest upstream 1.9.1 + +* Fri Jan 6 2017 Orion Poplawski - 1.8.3-4 +- Modernize spec + +* Mon Dec 12 2016 Charalampos Stratakis - 1.8.3-3 +- Rebuild for Python 3.6 +- Disable test dependencies + +* Thu Nov 03 2016 John Dulaney - 1.8.3-2 +- Re-disable check + +* Sun Sep 18 2016 John Dulaney - 1.8.3-1 +- Update to 1.8.3 +- Reenable check + +* Wed Sep 07 2016 John Dulaney - 1.8.2-1 +- Update to 1.8.2 + +* Tue Aug 09 2016 Nathaniel McCallum - 1.7.0-3 +- Record installed files + +* Tue Jul 19 2016 Fedora Release Engineering - 1.7.0-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Jun 23 2016 John Dulaney - 1.7.0-1 +- Update to 1.7.0 + +* Thu Apr 28 2016 John Dulaney - 1.6.0-3 +- Switch Source0 to using pypi.io + +* Thu Apr 28 2016 John Dulaney - 1.6.0-2 +- Update Source0 URL to account for pypi change + +* Thu Apr 21 2016 John Dulaney - 1.6.0-1 +- Update to 1.6.0 (#1329203) + +* Mon Feb 15 2016 John Dulaney - 1.5.2-1 +- Update to 1.5.2 (#1299272) + +* Thu Feb 04 2016 Fedora Release Engineering - 1.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Jan 18 2016 Nathaniel McCallum - 1.5.0-1 +- Update to 1.5.0 (#1299272) + +* Mon Jan 11 2016 Nathaniel McCallum - 1.4.2-2 +- Move python-cffi => python2-cffi + +* Tue Dec 22 2015 John Dulaney - 1.4.2-1 +- Update to 1.4.2 (#1293504) + +* Thu Dec 17 2015 John Dulaney - 1.4.1-1 +- Update to latest upstream release + +* Fri Dec 11 2015 John Dulaney - 1.3.1-1 +- Update to latest upstream release + +* Tue Oct 13 2015 Robert Kuska - 1.1.2-4 +- Rebuilt for Python3.5 rebuild + +* Wed Jul 15 2015 Parag Nemade - 1.1.2-3 +- Modernize spec file +- add missing source + +* Thu Jun 18 2015 Fedora Release Engineering - 1.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jun 16 2015 Nathaniel McCallum - 1.1.2-2 +- Update to 1.1.2 +- Fix license + +* Tue Aug 19 2014 Eric Smith 0.8.6-1 +- Update to latest upstream. +- No python3 in el7. + +* Sun Aug 17 2014 Fedora Release Engineering - 0.8.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 12 2014 Bohuslav Kabrda - 0.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Wed Feb 26 2014 Eric Smith 0.8.1-1 +- Update to latest upstream. + +* Tue Aug 13 2013 Eric Smith 0.6-5 +- Add Requires of python{,3}-pycparser. + +* Thu Jul 25 2013 Eric Smith 0.6-4 +- Fix broken conditionals in spec (missing question marks), needed for el6. + +* Tue Jul 23 2013 Eric Smith 0.6-3 +- Add Python3 support. + +* Mon Jul 22 2013 Eric Smith 0.6-2 +- Better URL, and use version macro in Source0. + +* Sun Jul 21 2013 Eric Smith 0.6-1 +- initial version + +## END: Generated by rpmautospec