|
|
|
@ -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 <jeff@ocjtech.us> - 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 <tomspur@fedoraproject.org> - 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 <jeff@ocjtech.us> - 2.2.4-1
|
|
|
|
|
- Update to 2.2.4
|
|
|
|
|
- Enable Python 3 subpackage
|
|
|
|
|
|
|
|
|
|
* Thu Nov 5 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.3-3
|
|
|
|
|
- F-13's python build chain must be a little different...
|
|
|
|
|
|
|
|
|
|
* Thu Nov 5 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.3-2
|
|
|
|
|
- Add option to build a Python 3 subpackage, original patch by David Malcolm
|
|
|
|
|
|
|
|
|
|
* Fri Oct 30 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 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 <rel-eng@lists.fedoraproject.org> - 2.2.2-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sun Jun 21 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 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 <jeff@ocjtech.us> - 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 <jeff@ocjtech.us> - 2.2-1
|
|
|
|
|
- 2.2 (2009-03-21)
|
|
|
|
|
- Features added
|
|
|
|
|