From 2a800ab9d1a7fa57e32800e03636b52bc3b42f73 Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Mon, 1 Mar 2010 17:49:43 +0000 Subject: [PATCH] - 2.2.5 (2010-02-28) - - Features added - - * Support for running XSLT extension elements on the input root node - (e.g. in a template matching on "/"). - - Bugs fixed - - * Crash in XPath evaluation when reading smart strings from a document - other than the original context document. - * Support recent versions of html5lib by not requiring its XHTMLParser - in htmlparser.py anymore. - * Manually instantiating the custom element classes in lxml.objectify - could crash. - * Invalid XML text characters were not rejected by the API when they - appeared in unicode strings directly after non-ASCII characters. - * lxml.html.open_http_urllib() did not work in Python 3. - * The functions strip_tags() and strip_elements() in lxml.etree did - not remove all occurrences of a tag in all cases. - * Crash in XSLT extension elements when the XSLT context node is not - an element. --- .cvsignore | 3 +- python-lxml.spec | 177 ++++++++++++++++++++++++++++++++++++++++++++--- sources | 3 +- 3 files changed, 172 insertions(+), 11 deletions(-) diff --git a/.cvsignore b/.cvsignore index 32e81b8..e265ce7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ -lxml-2.2.2.tar.gz +lxml-2.2.5.tar.gz +lxml-2.2.5.tar.gz.asc diff --git a/python-lxml.spec b/python-lxml.spec index 087bd2a..e6434b1 100644 --- a/python-lxml.spec +++ b/python-lxml.spec @@ -1,7 +1,11 @@ -%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +%if 0%{?fedora} > 12 || 0%{?rhel} > 5 +%global with_python3 1 +%endif + +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} Name: python-lxml -Version: 2.2.2 +Version: 2.2.5 Release: 1%{?dist} Summary: ElementTree-like Python bindings for libxml2 and libxslt @@ -9,15 +13,19 @@ Group: Development/Libraries License: BSD URL: http://codespeak.net/lxml/ Source0: http://cheeseshop.python.org/packages/source/l/lxml/lxml-%{version}.tar.gz -#Source0: http://codespeak.net/lxml/lxml-%{version}.tgz +Source1: http://cheeseshop.python.org/packages/source/l/lxml/lxml-%{version}.tar.gz.asc BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libxslt-devel -%if 0%{?fedora} >= 8 -BuildRequires: python-setuptools-devel -%else -BuildRequires: python-setuptools +BuildRequires: python-devel +BuildRequires: python-setuptools + +%if 0%{?with_python3} +BuildRequires: python3-devel +BuildRequires: python3-setuptools +# needed for 2to3 +BuildRequires: python-tools %endif %description @@ -28,27 +36,178 @@ bindings. In particular, lxml deals with Python Unicode strings rather than encoded UTF-8 and handles memory management automatically, unlike the default bindings. +%package docs +Summary: Documentation for %{name} +Group: Documentation +BuildArch: noarch +%description docs +This package provides the documentation for %{name}, e.g. the API as html. + + +%if 0%{?with_python3} +%package -n python3-lxml +Summary: ElementTree-like Python 3 bindings for libxml2 and libxslt +Group: Development/Libraries + +%description -n python3-lxml +lxml provides a Python 3 binding to the libxslt and libxml2 libraries. +It follows the ElementTree API as much as possible in order to provide +a more Pythonic interface to libxml2 and libxslt than the default +bindings. In particular, lxml deals with Python 3 Unicode strings +rather than encoded UTF-8 and handles memory management automatically, +unlike the default bindings. +%endif + %prep %setup -q -n lxml-%{version} chmod a-x doc/rest2html.py +%{__sed} -i 's/\r//' doc/s5/ui/default/print.css \ + doc/s5/ep2008/atom.rng \ + doc/s5/ui/default/iepngfix.htc + +# FIXME: this is fixed in upstreams issue: +# http://bugs.python.org/issue7313 +# Don't know when this is in a released python version. +# Always try to delete that part, +# when a new python version is released!!! +# +# src/lxml/tests/test_errors.py has a 3-byte Byte Order Marker, which seems to +# break both 2to3 and python3-2to3; +# However, it doesn't contain any non-ASCII characters, so for now, simply +# strip it from the top of the file: +pushd src/lxml/tests + tail --bytes=+4 test_errors.py > test_errors.py.new + mv test_errors.py.new test_errors.py +popd + +%if 0%{?with_python3} +rm -rf %{py3dir} +cp -r . %{py3dir} +2to3 --write --nobackup %{py3dir} +%endif %build CFLAGS="%{optflags}" %{__python} -c 'import setuptools; execfile("setup.py")' build +%if 0%{?with_python3} +pushd %{py3dir} +CFLAGS="%{optflags}" %{__python3} setup.py build +popd +%endif + %install rm -rf %{buildroot} %{__python} -c 'import setuptools; execfile("setup.py")' install --skip-build --root %{buildroot} +%if 0%{?with_python3} +pushd %{py3dir} +%{__python3} setup.py install --skip-build --root %{buildroot} +popd +%endif + %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) -%doc README.txt LICENSES.txt PKG-INFO CREDITS.txt CHANGES.txt doc/ -%{python_sitearch}/* +%doc README.txt LICENSES.txt PKG-INFO CREDITS.txt CHANGES.txt +%{python_sitearch}/lxml +%{python_sitearch}/lxml-*.egg-info + +%files docs +%defattr(-,root,root,-) +%doc doc/* + +%if 0%{?with_python3} +%files -n python3-lxml +%defattr(-,root,root,-) +%doc README.txt LICENSES.txt PKG-INFO CREDITS.txt CHANGES.txt +%{python3_sitearch}/lxml-*.egg-info +%{python3_sitearch}/lxml +%endif %changelog +* Mon Mar 1 2010 Jeffrey C. Ollie - 2.2.5-1 +- 2.2.5 (2010-02-28) +- +- Features added +- +- * Support for running XSLT extension elements on the input root node +- (e.g. in a template matching on "/"). +- +- Bugs fixed +- +- * Crash in XPath evaluation when reading smart strings from a document +- other than the original context document. +- * Support recent versions of html5lib by not requiring its XHTMLParser +- in htmlparser.py anymore. +- * Manually instantiating the custom element classes in lxml.objectify +- could crash. +- * Invalid XML text characters were not rejected by the API when they +- appeared in unicode strings directly after non-ASCII characters. +- * lxml.html.open_http_urllib() did not work in Python 3. +- * The functions strip_tags() and strip_elements() in lxml.etree did +- not remove all occurrences of a tag in all cases. +- * Crash in XSLT extension elements when the XSLT context node is not +- an element. + +* Mon Feb 15 2010 Thomas Spura - 2.2.4-2 +- update to current python3 guidelines +- be more explicit in %%files +- use %%global and not %%define +- create docs subpackage +- add stripping 3-byte Byte Order Marker from src/lxml/tests/test_errors.py + to get 2to3 to work (dmalcolm) +- fixes FTBFS (#564674) + +* Thu Jan 14 2010 Jeffrey C. Ollie - 2.2.4-1 +- Update to 2.2.4 +- Enable Python 3 subpackage + +* Thu Nov 5 2009 Jeffrey C. Ollie - 2.2.3-3 +- F-13's python build chain must be a little different... + +* Thu Nov 5 2009 Jeffrey C. Ollie - 2.2.3-2 +- Add option to build a Python 3 subpackage, original patch by David Malcolm + +* Fri Oct 30 2009 Jeffrey C. Ollie - 2.2.3-1 +- 2.2.3 (2009-10-30) +- Bugs fixed +- +- * The resolve_entities option did not work in the incremental feed +- parser. +- * Looking up and deleting attributes without a namespace could hit a +- namespaced attribute of the same name instead. +- * Late errors during calls to SubElement() (e.g. attribute related +- ones) could leave a partially initialised element in the tree. +- * Modifying trees that contain parsed entity references could result +- in an infinite loop. +- * ObjectifiedElement.__setattr__ created an empty-string child element +- when the attribute value was rejected as a non-unicode/non-ascii +- string +- * Syntax errors in lxml.cssselect could result in misleading error +- messages. +- * Invalid syntax in CSS expressions could lead to an infinite loop in +- the parser of lxml.cssselect. +- * CSS special character escapes were not properly handled in +- lxml.cssselect. +- * CSS Unicode escapes were not properly decoded in lxml.cssselect. +- * Select options in HTML forms that had no explicit value attribute +- were not handled correctly. The HTML standard dictates that their +- value is defined by their text content. This is now supported by +- lxml.html. +- * XPath raised a TypeError when finding CDATA sections. This is now +- fully supported. +- * Calling help(lxml.objectify) didn't work at the prompt. +- * The ElementMaker in lxml.objectify no longer defines the default +- namespaces when annotation is disabled. +- * Feed parser failed to honour the 'recover' option on parse errors. +- * Diverting the error logging to Python's logging system was broken. + +* Sun Jul 26 2009 Fedora Release Engineering - 2.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + * Sun Jun 21 2009 Jeffrey C. Ollie - 2.2.2-1 - 2.2.2 (2009-06-21) - Features added diff --git a/sources b/sources index 330caf3..2777c77 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -2f2fcb6aae51b5b417a3c0a6b256ec56 lxml-2.2.2.tar.gz +2ce79c4162c25063f58975a9a1f63e27 lxml-2.2.5.tar.gz +dd02c1ae95b68970eb67aad1580b8f80 lxml-2.2.5.tar.gz.asc