3 %bcond_without python2 # CPython 2.x module
4 %bcond_without python3 # CPython 3.x module
5 %bcond_without tests # unit tests
6 %bcond_with tests_net # unit tests using network
8 %define module cssutils
9 %define encutils_ver 0.9.8
10 Summary: A CSS Cascading Style Sheets library for Python 2
11 Summary(pl.UTF-8): Biblioteka CSS (Cascading Style Sheets) dla Pythona 2
12 Name: python-%{module}
17 Group: Libraries/Python
18 Source0: https://files.pythonhosted.org/packages/source/c/cssutils/%{module}-%{version}.tar.gz
19 # Source0-md5: dc66d96c2d78f1687f59ac412fe9d318
20 Patch0: %{name}-tests.patch
21 Patch1: %{name}-mock.patch
22 URL: http://cthedot.de/cssutils/
24 BuildRequires: python-devel >= 1:2.5
25 %{?with_tests:BuildRequires: python-mock}
26 BuildRequires: python-setuptools
29 BuildRequires: python3-2to3 >= 1:3.2
30 BuildRequires: python3-devel >= 1:3.2
31 BuildRequires: python3-setuptools
33 BuildRequires: rpm-pythonprov
34 BuildRequires: rpmbuild(macros) >= 1.714
35 Requires: python-modules >= 1:2.5
36 Provides: python-encutils = %{encutils_ver}
37 Obsoletes: python-encutils < %{encutils_ver}
39 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 A Python package to parse and build CSS Cascading Style Sheets. Partly
43 implements the DOM Level 2 Stylesheets and DOM Level 2 CSS interfaces.
45 %description -l pl.UTF-8
46 Pakiet Pythona do analizy i tworzenia CSS (Cascading Style Sheets).
47 Częściowo implementuje interfejsy DOM Level 2 Stylesheets oraz DOM
50 %package -n python3-%{module}
51 Summary: A CSS Cascading Style Sheets library for Python 3
52 Summary(pl.UTF-8): Biblioteka CSS (Cascading Style Sheets) dla Pythona 3
53 Group: Libraries/Python
54 Requires: python3-modules >= 1:3.2
56 %description -n python3-%{module}
57 A Python package to parse and build CSS Cascading Style Sheets. Partly
58 implements the DOM Level 2 Stylesheets and DOM Level 2 CSS interfaces.
60 %description -n python3-%{module} -l pl.UTF-8
61 Pakiet Pythona do analizy i tworzenia CSS (Cascading Style Sheets).
62 Częściowo implementuje interfejsy DOM Level 2 Stylesheets oraz DOM
66 %setup -q -n %{module}-%{version}
70 eval $(PYTHONPATH=src python -c "from encutils import VERSION;print 'VERSION=%%s' %% VERSION")
71 if [ $VERSION != %{encutils_ver} ]; then
72 echo "Please set encutils_ver to $VERSION"
76 %if %{without tests_net}
77 %{__sed} -i -e 's/def test_parseUrl/def skip_parseUrl/' src/cssutils/tests/test_parse.py
78 %{__sed} -i -e 's/def test_handlers/def skip_handlers/' src/cssutils/tests/test_errorhandler.py
86 %{__python} -m unittest discover -t build-2/lib -s build-2/lib/cssutils/tests
94 %{__python3} -m unittest discover -t build-3/lib -s build-3/lib/cssutils/tests
99 rm -rf $RPM_BUILD_ROOT
104 for f in csscapture csscombine cssparse ; do
105 %{__mv} $RPM_BUILD_ROOT%{_bindir}/$f $RPM_BUILD_ROOT%{_bindir}/${f}-3
108 %{__rm} -r $RPM_BUILD_ROOT%{py3_sitescriptdir}/cssutils/tests
114 for f in csscapture csscombine cssparse ; do
115 %{__mv} $RPM_BUILD_ROOT%{_bindir}/$f $RPM_BUILD_ROOT%{_bindir}/${f}-2
116 ln -sf ${f}-2 $RPM_BUILD_ROOT%{_bindir}/$f
120 %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/cssutils/tests
124 rm -rf $RPM_BUILD_ROOT
128 %defattr(644,root,root,755)
130 %attr(755,root,root) %{_bindir}/csscapture
131 %attr(755,root,root) %{_bindir}/csscombine
132 %attr(755,root,root) %{_bindir}/cssparse
133 %attr(755,root,root) %{_bindir}/csscapture-2
134 %attr(755,root,root) %{_bindir}/csscombine-2
135 %attr(755,root,root) %{_bindir}/cssparse-2
136 %{py_sitescriptdir}/cssutils
137 %{py_sitescriptdir}/encutils
138 %{py_sitescriptdir}/cssutils-%{version}-py*.egg-info
142 %files -n python3-%{module}
143 %defattr(644,root,root,755)
144 %attr(755,root,root) %{_bindir}/csscapture-3
145 %attr(755,root,root) %{_bindir}/csscombine-3
146 %attr(755,root,root) %{_bindir}/cssparse-3
147 %{py3_sitescriptdir}/cssutils
148 %{py3_sitescriptdir}/encutils
149 %{py3_sitescriptdir}/cssutils-%{version}-py*.egg-info