diff --git a/.gitignore b/.gitignore index e69de29..ae9ce5b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/attrs-16.0.0.tar.gz diff --git a/attrs-16.0.0-skiptests.patch b/attrs-16.0.0-skiptests.patch new file mode 100644 index 0000000..dba7b52 --- /dev/null +++ b/attrs-16.0.0-skiptests.patch @@ -0,0 +1,19 @@ +diff -up attrs-16.0.0/tests/test_funcs.py.skiptests attrs-16.0.0/tests/test_funcs.py +--- attrs-16.0.0/tests/test_funcs.py.skiptests 2016-05-23 12:29:31.000000000 -0600 ++++ attrs-16.0.0/tests/test_funcs.py 2016-08-18 10:22:35.616574684 -0600 +@@ -88,6 +88,7 @@ class TestAsDict(object): + } == res + assert isinstance(res, dict_factory) + ++ @pytest.mark.skip(reason="test fails due to keyword collision, will be fixed in 16.0.1") + @given(simple_classes, st.sampled_from(MAPPING_TYPES)) + def test_roundtrip(self, cls, dict_factory): + """ +@@ -102,6 +103,7 @@ class TestAsDict(object): + + assert instance == roundtrip_instance + ++ @pytest.mark.skip(reason="test fails due to keyword collision, will be fixed in 16.0.1") + @given(simple_classes) + def test_asdict_preserve_order(self, cls): + """ diff --git a/python-attrs.spec b/python-attrs.spec new file mode 100644 index 0000000..800f522 --- /dev/null +++ b/python-attrs.spec @@ -0,0 +1,126 @@ +%global modname attrs + +# can't yet build python3 package for EPEL7 +# Python 3.5 is available in EPEL7, but as of 2016-08-14, packaging guidelines +# aren't up to date, and example spec at +# https://fedoraproject.org/wiki/User:Bkabrda/EPEL7_Python3#Specfiles.2C_Macros.2C_Packaging_Process +# isn't actually working for me. + +%if 0%{?rhel} && 0%{?rhel} <= 7 +%bcond_with python3 +%else +%bcond_without python3 +%endif + +Name: python-attrs +Version: 16.0.0 +Release: 5%{?dist} +Summary: Python attributes without boilerplate + +License: MIT +URL: https://attrs.readthedocs.io/ +BuildArch: noarch +Source0: https://github.com/hynek/%{modname}/archive/%{version}/%{modname}-%{version}.tar.gz + +# Patch two skip two tests with keyword collisions, fixed upstream in git, +# so patch won't be necessary in 16.1.0 and later +# https://github.com/hynek/attrs/issues/65 +# https://github.com/hynek/attrs/commit/d10e5c41d614f8ca7b1b7a7c7a98f9dbe2d2b6fc +Patch1: %{modname}-16.0.0-skiptests.patch + + +%if 0%{?rhel} && 0%{?rhel} <= 7 +BuildRequires: python-devel python-setuptools +%else +BuildRequires: python2-devel python2-setuptools +BuildRequires: python2-pytest python-zope-interface +%endif +BuildRequires: python2-hypothesis + +%if %{with python3} +BuildRequires: python3-devel python3-setuptools python3-hypothesis +BuildRequires: python3-pytest python3-zope-interface +%endif + +%description +attrs is an MIT-licensed Python package with class decorators that +ease the chores of implementing the most common attribute-related +object protocols. + +%package -n python2-%{modname} +Summary: %{summary} +%{?python_provide:%python_provide python2-%{modname}} + +%description -n python2-%{modname} +attrs is an MIT-licensed Python package with class decorators that +ease the chores of implementing the most common attribute-related +object protocols. + +%if %{with python3} +%package -n python%{python3_pkgversion}-%{modname} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{modname}} + +%description -n python3-%{modname} +attrs is an MIT-licensed Python package with class decorators that +ease the chores of implementing the most common attribute-related +object protocols. +%endif + +%prep +%setup -q -n %{modname}-%{version} +%patch1 -p1 -b .skiptests + +%build +%py2_build +%if %{with python3} +%py3_build +%endif + +%install +# Doesn't install anything to /usr/bin, so I don't think the order of +# installing python2 and python3 actually matters. +%if %{with python3} +%py3_install +%endif +%py2_install + +%check +%if 0%{?rhel} && 0%{?rhel} <= 7 +# Can't run tests on EPEL7 due to need for pytest >= 2.8 +%else +PYTHONPATH=%{buildroot}/%{python2_sitelib} py.test-2.7 -v +%if %{with python3} +PYTHONPATH=%{buildroot}/%{python3_sitelib} py.test-3 -v +%endif +%endif + +%files -n python2-%{modname} +%license LICENSE +%doc AUTHORS.rst README.rst +%{python2_sitelib}/* + +%if %{with python3} +%files -n python3-%{modname} +%license LICENSE +%doc AUTHORS.rst README.rst +%{python3_sitelib}/* +%endif + +%changelog +* Thu Aug 18 2016 Eric Smith 16.0.0-5 +- Updated based on Fedora package review (#1366878). +- Fix check section, though tests can not be run for EPEL7. +- Add patch to skip two tests with keyword collisions. + +* Tue Aug 16 2016 Eric Smith 16.0.0-4 +- Fix python2 BuildRequires. + +* Mon Aug 15 2016 Eric Smith 16.0.0-3 +- Updated based on Fedora package review (#1366878). + +* Sun Aug 14 2016 Eric Smith 16.0.0-2 +- Updated based on Fedora package review (#1366878). + +* Sat Aug 13 2016 Eric Smith 16.0.0-1 +- Initial version. diff --git a/sources b/sources index e69de29..61e7241 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +44eefb6db8b258becb94243ac1247a46 attrs-16.0.0.tar.gz