From ea280a0fd72e98911da2ade4ca5404793f97aeb2 Mon Sep 17 00:00:00 2001 From: Artur Frysiak Date: Sat, 27 Mar 2010 15:14:46 +0000 Subject: [PATCH] - build python2 and python3 versions from one spec - release 2 Changed files: python-lxml.spec -> 1.20 python3.patch -> 1.1 --- python-lxml.spec | 62 +++++++++++++++++++++++++++++++++++++++++++++--- python3.patch | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 python3.patch diff --git a/python-lxml.spec b/python-lxml.spec index e6ca682..9d5caaa 100644 --- a/python-lxml.spec +++ b/python-lxml.spec @@ -1,20 +1,30 @@ # +%bcond_without python3 +%bcond_without python2 %define module lxml # Summary: A Pythonic binding for the libxml2 and libxslt libraries Summary(pl.UTF-8): Pythonowe wiązanie do bibliotek libxml2 i libxslt Name: python-%{module} Version: 2.2.6 -Release: 1 +Release: 2 License: BSD Group: Libraries/Python Source0: http://codespeak.net/lxml/%{module}-%{version}.tgz # Source0-md5: b1f700fb22d7ee9b977ee3eceb65b20c +Patch0: python3.patch URL: http://codespeak.net/lxml/ BuildRequires: libxml2-devel BuildRequires: libxslt-devel +%if %{with python2} BuildRequires: python-devel BuildRequires: python-modules +%endif +%if %{with python3} +BuildRequires: python3-Cython +BuildRequires: python3-devel +BuildRequires: python3-modules +%endif BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.219 BuildRequires: unzip @@ -26,24 +36,56 @@ lxml is a Pythonic binding for the libxml2 and libxslt libraries. %description -l pl.UTF-8 lxml to pythonowe wiązanie do bibliotek libxml2 i libxslt. +%package -n python3-%{module} +Summary: A Pythonic binding for the libxml2 and libxslt libraries +Summary(pl.UTF-8): Pythonowe wiązanie do bibliotek libxml2 i libxslt +Version: %{version} +Release: %{release} +Group: Libraries/Python + +%description -n python3-%{module} +lxml is a Pythonic binding for the libxml2 and libxslt libraries. + +%description -n python3-%{module} -l pl.UTF-8 +lxml to pythonowe wiązanie do bibliotek libxml2 i libxslt. + %prep %setup -q -n %{module}-%{version} +%patch0 -p1 %build -python setup.py build +%if %{with python2} +%{__python} setup.py build +%endif +%if %{with python3} +%{__python3} setup.py build +%endif %install rm -rf $RPM_BUILD_ROOT -python setup.py install \ +%if %{with python2} +%{__python} setup.py \ + install \ --root=$RPM_BUILD_ROOT \ --optimize=2 %py_postclean +%endif + +%if %{with python3} +%{__python3} setup.py \ + install \ + --root=$RPM_BUILD_ROOT \ + --optimize=2 + +%py3_postclean +%endif %clean rm -rf $RPM_BUILD_ROOT +%if %{with python2} %files %defattr(644,root,root,755) %doc doc/* CHANGES.txt CREDITS.txt TODO.txt @@ -54,3 +96,17 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{py_sitedir}/lxml/etree.so %attr(755,root,root) %{py_sitedir}/lxml/objectify.so %{py_sitedir}/lxml-*.egg-info +%endif + +%if %{with python3} +%files -n python3-%{module} +%defattr(644,root,root,755) +%doc doc/* CHANGES.txt CREDITS.txt TODO.txt +%dir %{py3_sitedir}/lxml +%{py3_sitedir}/lxml/*.py[co] +%dir %{py3_sitedir}/lxml/html +%{py3_sitedir}/lxml/html/*.py[co] +%attr(755,root,root) %{py3_sitedir}/lxml/etree.so +%attr(755,root,root) %{py3_sitedir}/lxml/objectify.so +%{py3_sitedir}/lxml-*.egg-info +%endif diff --git a/python3.patch b/python3.patch new file mode 100644 index 0000000..f8de0ae --- /dev/null +++ b/python3.patch @@ -0,0 +1,42 @@ +--- lxml-2.2.6/src/lxml/html/_html5builder.py.wiget 2009-09-11 10:55:58.000000000 +0200 ++++ lxml-2.2.6/src/lxml/html/_html5builder.py 2010-03-27 16:04:28.693916731 +0100 +@@ -7,6 +7,11 @@ html5lib style guide. + from html5lib.treebuilders import _base, etree as etree_builders + from lxml import html, etree + ++try: ++ empty_string = unicode() ++except NameError: ++ empty_string = str() ++ + + class DocumentType(object): + +@@ -77,7 +82,7 @@ class TreeBuilder(_base.TreeBuilder): + self.doctype.systemId)) + buf.append('>') + buf.append('') +- root = html.fromstring(u''.join(buf)) ++ root = html.fromstring(empty_string.join(buf)) + + # Append the initial comments: + for comment in self.initialComments: +--- lxml-2.2.6/src/lxml/html/_diffcommand.py.wiget 2009-09-11 10:55:58.000000000 +0200 ++++ lxml-2.2.6/src/lxml/html/_diffcommand.py 2010-03-27 16:02:10.727258598 +0100 +@@ -34,7 +34,7 @@ def main(args=None): + if options.annotation: + return annotate(options, args) + if len(args) != 2: +- print 'Error: you must give two files' ++ print('Error: you must give two files') + parser.print_help() + sys.exit(1) + file1, file2 = args +@@ -82,6 +82,6 @@ def split_body(html): + return pre, html, post + + def annotate(options, args): +- print "Not yet implemented" ++ print("Not yet implemented") + sys.exit(1) + -- 2.43.0