diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 5213f89..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -lxml-2.2.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e265ce7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +lxml-2.2.5.tar.gz +lxml-2.2.5.tar.gz.asc diff --git a/Makefile b/Makefile deleted file mode 100644 index 2282443..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: python-lxml -# $Id$ -NAME := python-lxml -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/python-lxml.spec b/python-lxml.spec index 5b62188..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 +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,215 @@ 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 +- +- * New helper functions strip_attributes(), strip_elements(), +- strip_tags() in lxml.etree to remove attributes/subtrees/tags +- from a subtree. +- +- Bugs fixed +- +- * Namespace cleanup on subtree insertions could result in missing +- namespace declarations (and potentially crashes) if the element +- defining a namespace was deleted and the namespace was not used +- by the top element of the inserted subtree but only in deeper +- subtrees. +- * Raising an exception from a parser target callback didn't always +- terminate the parser. +- * Only {true, false, 1, 0} are accepted as the lexical representation +- for BoolElement ({True, False, T, F, t, f} not any more), restoring +- lxml <= 2.0 behaviour. + +* Tue Jun 2 2009 Jeffrey C. Ollie - 2.2.1-1 +- 2.2.1 (2009-06-02) +- Features added +- +- * Injecting default attributes into a document during XML Schema +- validation (also at parse time). +- * Pass huge_tree parser option to disable parser security restrictions +- imposed by libxml2 2.7. +- +- Bugs fixed +- +- * The script for statically building libxml2 and libxslt didn't work +- in Py3. +- * XMLSchema() also passes invalid schema documents on to libxml2 for +- parsing (which could lead to a crash before release 2.6.24). + * Tue Mar 24 2009 Jeffrey C. Ollie - 2.2-1 - 2.2 (2009-03-21) - Features added diff --git a/sources b/sources index b782841..2777c77 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -b3f12344291aa0d393915e7d8358b480 lxml-2.2.tar.gz +2ce79c4162c25063f58975a9a1f63e27 lxml-2.2.5.tar.gz +dd02c1ae95b68970eb67aad1580b8f80 lxml-2.2.5.tar.gz.asc