9d81f5
%if 0%{?fedora} > 12
9d81f5
%global with_python3 1
9d81f5
%endif
9d81f5
9d81f5
Name:           python-lxml
9d81f5
Version:        3.2.1
9d81f5
Release:        4%{?dist}
9d81f5
Summary:        ElementTree-like Python bindings for libxml2 and libxslt
9d81f5
9d81f5
Group:          Development/Libraries
9d81f5
License:        BSD
9d81f5
URL:            http://lxml.de
9d81f5
Source0:        http://lxml.de/files/lxml-%{version}.tgz
9d81f5
Source1:        http://lxml.de/files/lxml-%{version}.tgz.asc
9d81f5
9d81f5
Patch0:         python-lxml-iterparse.patch
9d81f5
9d81f5
BuildRequires:  libxslt-devel
9d81f5
9d81f5
BuildRequires:  python-devel
9d81f5
BuildRequires:  python-setuptools
9d81f5
BuildRequires:  Cython >= 0.17.1
9d81f5
9d81f5
%if 0%{?with_python3}
9d81f5
BuildRequires:  python3-devel
9d81f5
BuildRequires:  python3-setuptools
9d81f5
%endif
9d81f5
9d81f5
%description
9d81f5
lxml provides a Python binding to the libxslt and libxml2 libraries.
9d81f5
It follows the ElementTree API as much as possible in order to provide
9d81f5
a more Pythonic interface to libxml2 and libxslt than the default
9d81f5
bindings.  In particular, lxml deals with Python Unicode strings
9d81f5
rather than encoded UTF-8 and handles memory management automatically,
9d81f5
unlike the default bindings.
9d81f5
9d81f5
%package docs
9d81f5
Summary:        Documentation for %{name}
9d81f5
Group:          Documentation
9d81f5
BuildArch:      noarch
9d81f5
%description docs
9d81f5
This package provides the documentation for %{name}, e.g. the API as html.
9d81f5
9d81f5
9d81f5
%if 0%{?with_python3}
9d81f5
%package -n python3-lxml
9d81f5
Summary:        ElementTree-like Python 3 bindings for libxml2 and libxslt
9d81f5
Group:          Development/Libraries
9d81f5
9d81f5
%description -n python3-lxml
9d81f5
lxml provides a Python 3 binding to the libxslt and libxml2 libraries.
9d81f5
It follows the ElementTree API as much as possible in order to provide
9d81f5
a more Pythonic interface to libxml2 and libxslt than the default
9d81f5
bindings.  In particular, lxml deals with Python 3 Unicode strings
9d81f5
rather than encoded UTF-8 and handles memory management automatically,
9d81f5
unlike the default bindings.
9d81f5
%endif
9d81f5
9d81f5
%prep
9d81f5
%setup -q -n lxml-%{version}
9d81f5
9d81f5
# spurious XMLSyntaxError after finishing iterparse() (bug #874546)
9d81f5
%patch0 -p1 -b .close_source
9d81f5
9d81f5
# remove the C extension so that it will be rebuilt using the latest Cython
9d81f5
rm -f src/lxml/lxml.etree.c
9d81f5
rm -f src/lxml/lxml.etree.h
9d81f5
rm -f src/lxml/lxml.etree_api.h
9d81f5
rm -f src/lxml/lxml.objectify.c
9d81f5
9d81f5
chmod a-x doc/rest2html.py
9d81f5
%{__sed} -i 's/\r//' doc/s5/ui/default/print.css \
9d81f5
    doc/s5/ep2008/atom.rng \
9d81f5
    doc/s5/ui/default/iepngfix.htc
9d81f5
9d81f5
%if 0%{?with_python3}
9d81f5
rm -rf %{py3dir}
9d81f5
cp -r . %{py3dir}
9d81f5
%endif
9d81f5
9d81f5
%build
9d81f5
CFLAGS="%{optflags}" %{__python} setup.py build --with-cython
9d81f5
9d81f5
%if 0%{?with_python3}
9d81f5
cp src/lxml/lxml.etree.c %{py3dir}/src/lxml
9d81f5
cp src/lxml/lxml.etree.h %{py3dir}/src/lxml
9d81f5
cp src/lxml/lxml.etree_api.h %{py3dir}/src/lxml
9d81f5
cp src/lxml/lxml.objectify.c %{py3dir}/src/lxml
9d81f5
9d81f5
pushd %{py3dir}
9d81f5
CFLAGS="%{optflags}" %{__python3} setup.py build --with-cython
9d81f5
popd
9d81f5
%endif
9d81f5
9d81f5
%install
9d81f5
%{__python} setup.py install --skip-build --no-compile --with-cython --root %{buildroot}
9d81f5
9d81f5
%if 0%{?with_python3}
9d81f5
pushd %{py3dir}
9d81f5
%{__python3} setup.py install --skip-build --no-compile --with-cython --root %{buildroot}
9d81f5
popd
9d81f5
%endif
9d81f5
9d81f5
%files
9d81f5
%doc LICENSES.txt PKG-INFO CREDITS.txt CHANGES.txt
9d81f5
%{python_sitearch}/lxml
9d81f5
%{python_sitearch}/lxml-*.egg-info
9d81f5
9d81f5
%files docs
9d81f5
%doc doc/*
9d81f5
9d81f5
%if 0%{?with_python3}
9d81f5
%files -n python3-lxml
9d81f5
%doc LICENSES.txt PKG-INFO CREDITS.txt CHANGES.txt
9d81f5
%{python3_sitearch}/lxml-*.egg-info
9d81f5
%{python3_sitearch}/lxml
9d81f5
%endif
9d81f5
9d81f5
%changelog
9d81f5
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.2.1-4
9d81f5
- Mass rebuild 2014-01-24
9d81f5
9d81f5
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.2.1-3
9d81f5
- Mass rebuild 2013-12-27
9d81f5
9d81f5
* Thu Jul 11 2013 Jiri Popelka <jpopelka@redhat.com> - 3.2.1-2
9d81f5
- spurious XMLSyntaxError after finishing iterparse() (bug #874546)
9d81f5
9d81f5
* Sun May 12 2013 Jeffrey Ollie <jeff@ocjtech.us> - 3.2.1-1
9d81f5
- 3.2.1 (2013-05-11)
9d81f5
- ==================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * The methods ``apply_templates()`` and ``process_children()`` of XSLT
9d81f5
-   extension elements have gained two new boolean options ``elements_only``
9d81f5
-   and ``remove_blank_text`` that discard either all strings or
9d81f5
-   whitespace-only strings from the result list.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * When moving Elements to another tree, the namespace cleanup mechanism
9d81f5
-   no longer drops namespace prefixes from attributes for which it finds
9d81f5
-   a default namespace declaration, to prevent them from appearing as
9d81f5
-   unnamespaced attributes after serialisation.
9d81f5
-
9d81f5
- * Returning non-type objects from a custom class lookup method could lead
9d81f5
-   to a crash.
9d81f5
-
9d81f5
- * Instantiating and using subtypes of Comments and ProcessingInstructions
9d81f5
-   crashed.
9d81f5
9d81f5
* Fri May 10 2013 Jeffrey Ollie <jeff@ocjtech.us> - 3.2.0-1
9d81f5
- 3.2.0 (2013-04-28)
9d81f5
- ==================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * LP#690319: Leading whitespace could change the behaviour of the string
9d81f5
-   parsing functions in ``lxml.html``.
9d81f5
-
9d81f5
- * LP#599318: The string parsing functions in ``lxml.html`` are more robust
9d81f5
-   in the face of uncommon HTML content like framesets or missing body tags.
9d81f5
-   Patch by Stefan Seelmann.
9d81f5
-
9d81f5
- * LP#712941: I/O errors while trying to access files with paths that
9d81f5
-   contain non-ASCII characters could raise ``UnicodeDecodeError`` instead
9d81f5
-   of properly reporting the ``IOError``.
9d81f5
-
9d81f5
- * LP#673205: Parsing from in-memory strings disabled network access in the
9d81f5
-   default parser and made subsequent attempts to parse from a URL fail.
9d81f5
-
9d81f5
- * LP#971754: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
9d81f5
-   of overwriting the current value.
9d81f5
-
9d81f5
- * LP#715687: lxml.html.clean no longer discards scripts that are explicitly
9d81f5
-   allowed by the user provided whitelist.  Patch by Christine Koppelt.
9d81f5
-
9d81f5
- 3.1.2 (2013-04-12)
9d81f5
- ==================
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * LP#1136509: Passing attributes through the namespace-unaware API of
9d81f5
-   the sax bridge (i.e. the ``handler.startElement()`` method) failed
9d81f5
-   with a ``TypeError``.  Patch by Mike Bayer.
9d81f5
-
9d81f5
- * LP#1123074: Fix serialisation error in XSLT output when converting
9d81f5
-   the result tree to a Unicode string.
9d81f5
-
9d81f5
- * GH#105: Replace illegal usage of ``xmlBufLength()`` in libxml2 2.9.0
9d81f5
-   by properly exported API function ``xmlBufUse()``.
9d81f5
-
9d81f5
- 3.1.1 (2013-03-29)
9d81f5
- ==================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * LP#1160386: Write access to ``lxml.html.FormElement.fields`` raised
9d81f5
-   an AttributeError in Py3.
9d81f5
-
9d81f5
- * Illegal memory access during cleanup in incremental xmlfile writer.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
- * The externally useless class ``lxml.etree._BaseParser`` was removed
9d81f5
-   from the module dict.
9d81f5
9d81f5
* Fri Mar  8 2013 Jeffrey Ollie <jeff@ocjtech.us> - 3.1.0-1
9d81f5
- 3.1.0 (2013-02-10)
9d81f5
- ==================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * GH#89: lxml.html.clean allows overriding the set of attributes that it
9d81f5
-   considers 'safe'.  Patch by Francis Devereux.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * LP#1104370: ``copy.copy(el.attrib)`` raised an exception.  It now returns
9d81f5
-   a copy of the attributes as a plain Python dict.
9d81f5
-
9d81f5
- * GH#95: When used with namespace prefixes, the  ``el.find*()`` methods
9d81f5
-   always used the first namespace mapping that was provided for each
9d81f5
-   path expression instead of using the one that was actually passed
9d81f5
-   in for the current run.
9d81f5
-
9d81f5
- * LP#1092521, GH#91: Fix undefined C symbol in Python runtimes compiled
9d81f5
-   without threading support.  Patch by Ulrich Seidl.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
-
9d81f5
- 3.1beta1 (2012-12-21)
9d81f5
- =====================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * New build-time option ``--with-unicode-strings`` for Python 2 that
9d81f5
-   makes the API always return Unicode strings for names and text
9d81f5
-   instead of byte strings for plain ASCII content.
9d81f5
-
9d81f5
- * New incremental XML file writing API ``etree.xmlfile()``.
9d81f5
-
9d81f5
- * E factory in lxml.objectify is callable to simplify the creation of
9d81f5
-   tags with non-identifier names without having to resort to getattr().
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * When starting from a non-namespaced element in lxml.objectify, searching
9d81f5
-   for a child without explicitly specifying a namespace incorrectly found
9d81f5
-   namespaced elements with the requested local name, instead of restricting
9d81f5
-   the search to non-namespaced children.
9d81f5
-
9d81f5
- * GH#85: Deprecation warnings were fixed for Python 3.x.
9d81f5
-
9d81f5
- * GH#33: lxml.html.fromstring() failed to accept bytes input in Py3.
9d81f5
-
9d81f5
- * LP#1080792: Static build of libxml2 2.9.0 failed due to missing file.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
- * The externally useless class ``_ObjectifyElementMakerCaller`` was
9d81f5
-   removed from the module API of lxml.objectify.
9d81f5
-
9d81f5
- * LP#1075622: lxml.builder is faster for adding text to elements with
9d81f5
-   many children.  Patch by Anders Hammarquist.
9d81f5
9d81f5
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.1-2
9d81f5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
9d81f5
9d81f5
* Mon Oct 15 2012 Jeffrey Ollie <jeff@ocjtech.us> - 3.0.1-1
9d81f5
- 3.0.1 (2012-10-14)
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-  * LP#1065924: Element proxies could disappear during garbage collection
9d81f5
-    in PyPy without proper cleanup.
9d81f5
-  * GH#71: Failure to work with libxml2 2.6.x.
9d81f5
-  * LP#1065139: static MacOS-X build failed in Py3.
9d81f5
9d81f5
* Wed Oct 10 2012 Jeffrey Ollie <jeff@ocjtech.us> - 3.0-1
9d81f5
- 3.0 (2012-10-08)
9d81f5
- ================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * End-of-file handling was incorrect in iterparse() when reading from
9d81f5
-   a low-level C file stream and failed in libxml2 2.9.0 due to its
9d81f5
-   improved consistency checks.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
- * The build no longer uses Cython by default unless the generated C files
9d81f5
-   are missing.  To use Cython, pass the option "--with-cython".  To ignore
9d81f5
-   the fatal build error when Cython is required but not available (e.g. to
9d81f5
-   run special setup.py commands that do not actually run a build), pass
9d81f5
-   "--without-cython".
9d81f5
-
9d81f5
-
9d81f5
- 3.0beta1 (2012-09-26)
9d81f5
- =====================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * Python level access to (optional) libxml2 memory debugging features
9d81f5
-   to simplify debugging of memory leaks etc.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * Fix a memory leak in XPath by switching to Cython 0.17.1.
9d81f5
-
9d81f5
- * Some tests were adapted to work with PyPy.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
- * The code was adapted to work with the upcoming libxml2 2.9.0 release.
9d81f5
-
9d81f5
-
9d81f5
- 3.0alpha2 (2012-08-23)
9d81f5
- ======================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * The .iter() method of elements now accepts tag arguments like "{*}name"
9d81f5
-   to search for elements with a given local name in any namespace.  With
9d81f5
-   this addition, all combinations of wildcards now work as expected:
9d81f5
-   "{ns}name", "{}name", "{*}name", "{ns}*", "{}*" and "{*}*".  Note that
9d81f5
-   "name" is equivalent to "{}name", but "*" is "{*}*".  The same change
9d81f5
-   applies to the .getiterator(), .itersiblings(), .iterancestors(),
9d81f5
-   .iterdescendants(), .iterchildren() and .itertext() methods,  the
9d81f5
-   strip_attributes(), strip_elements() and strip_tags() functions as well
9d81f5
-   as the iterparse() function.
9d81f5
-
9d81f5
- * C14N allows specifying the inclusive prefixes to be promoted to
9d81f5
-   top-level during exclusive serialisation.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * Passing long Unicode strings into the feed() parser interface failed to
9d81f5
-   read the entire string.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
-
9d81f5
- 3.0alpha1 (2012-07-31)
9d81f5
- ======================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * Initial support for building in PyPy (through cpyext).
9d81f5
-
9d81f5
- * DTD objects gained an API that allows read access to their
9d81f5
-   declarations.
9d81f5
-
9d81f5
- * xpathgrep.py gained support for parsing line-by-line (e.g.
9d81f5
-   from grep output) and for surrounding the output with a new root
9d81f5
-   tag.
9d81f5
-
9d81f5
- * E-factory in lxml.builder accepts subtypes of known data
9d81f5
-   types (such as string subtypes) when building elements around them.
9d81f5
-
9d81f5
- * Tree iteration and iterparse() with a selective tag
9d81f5
-   argument supports passing a set of tags.  Tree nodes will be
9d81f5
-   returned by the iterators if they match any of the tags.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * The .find*() methods in lxml.objectify no longer use XPath
9d81f5
-   internally, which makes them faster in many cases (especially when
9d81f5
-   short circuiting after a single or couple of elements) and fixes
9d81f5
-   some behavioural differences compared to lxml.etree.  Note that
9d81f5
-   this means that they no longer support arbitrary XPath expressions
9d81f5
-   but only the subset that the ElementPath language supports.
9d81f5
-   The previous implementation was also redundant with the normal
9d81f5
-   XPath support, which can be used as a replacement.
9d81f5
-
9d81f5
- * el.find('*') could accidentally return a comment or processing
9d81f5
-   instruction that happened to be in the wrong spot.  (Same for the
9d81f5
-   other .find*() methods.)
9d81f5
-
9d81f5
- * The error logging is less intrusive and avoids a global setup where
9d81f5
-   possible.
9d81f5
-
9d81f5
- * Fixed undefined names in html5lib parser.
9d81f5
-
9d81f5
- * xpathgrep.py did not work in Python 3.
9d81f5
-
9d81f5
- * Element.attrib.update() did not accept an attrib of
9d81f5
-   another Element as parameter.
9d81f5
-
9d81f5
- * For subtypes of ElementBase that make the .text or .tail
9d81f5
-   properties immutable (as in objectify, for example), inserting text
9d81f5
-   when creating Elements through the E-Factory feature of the class
9d81f5
-   constructor would fail with an exception, stating that the text
9d81f5
-   cannot be modified.
9d81f5
-
9d81f5
- Other changes
9d81f5
- --------------
9d81f5
-
9d81f5
- * The code base was overhauled to properly use 'const' where the API
9d81f5
-   of libxml2 and libxslt requests it.  This also has an impact on the
9d81f5
-   public C-API of lxml itself, as defined in etreepublic.pxd, as
9d81f5
-   well as the provided declarations in the lxml/includes/ directory.
9d81f5
-   Code that uses these declarations may have to be adapted.  On the
9d81f5
-   plus side, this fixes several C compiler warnings, also for user
9d81f5
-   code, thus making it easier to spot real problems again.
9d81f5
-
9d81f5
- * The functionality of "lxml.cssselect" was moved into a separate PyPI
9d81f5
-   package called "cssselect".  To continue using it, you must install
9d81f5
-   that package separately.  The "lxml.cssselect" module is still
9d81f5
-   available and provides the same interface, provided the "cssselect"
9d81f5
-   package can be imported at runtime.
9d81f5
-
9d81f5
- * Element attributes passed in as an attrib dict or as keyword
9d81f5
-   arguments are now sorted by (namespaced) name before being created
9d81f5
-   to make their order predictable for serialisation and iteration.
9d81f5
-   Note that adding or deleting attributes afterwards does not take
9d81f5
-   that order into account, i.e. setting a new attribute appends it
9d81f5
-   after the existing ones.
9d81f5
-
9d81f5
- * Several classes that are for internal use only were removed
9d81f5
-   from the lxml.etree module dict:
9d81f5
-   _InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
9d81f5
-   _ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
9d81f5
-   __ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
9d81f5
-   _ClassNamespaceRegistry, _FunctionNamespaceRegistry,
9d81f5
-   _XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
9d81f5
-   _FileReaderContext, _ParserContext, _PythonSaxParserTarget,
9d81f5
-   _TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
9d81f5
-   _ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
9d81f5
-   _OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
9d81f5
-   _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
9d81f5
-   _AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
9d81f5
-   _ParserSchemaValidationContext, _XPathContext,
9d81f5
-   _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam
9d81f5
-
9d81f5
- * Several internal classes can no longer be inherited from:
9d81f5
-   _InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
9d81f5
-   _IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
9d81f5
-   _XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
9d81f5
-   _FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
9d81f5
-   _ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
9d81f5
-   _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
9d81f5
-   _AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
9d81f5
-   _XPathContext, _XSLTResolverContext, _XSLTContext,
9d81f5
-   _XSLTQuotedStringParam, _XSLTResultTree, _XSLTProcessingInstruction
9d81f5
9d81f5
* Thu Sep 27 2012 Jeffrey Ollie <jeff@ocjtech.us> - 2.3.5-1
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-  * Crash when merging text nodes in element.remove().
9d81f5
-  * Crash in sax/target parser when reporting empty doctype.
9d81f5
9d81f5
* Thu Sep 27 2012 Jeffrey Ollie <jeff@ocjtech.us> - 2.3.4-1
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-  * Crash when building an nsmap (Element property) with empty namespace
9d81f5
-    URIs.
9d81f5
-  * Crash due to race condition when errors (or user messages) occur during
9d81f5
-    threaded XSLT processing (or compilation).
9d81f5
-  * XSLT stylesheet compilation could ignore compilation errors.
9d81f5
9d81f5
* Sat Aug 04 2012 David Malcolm <dmalcolm@redhat.com> - 2.3.3-4
9d81f5
- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3
9d81f5
9d81f5
* Fri Aug  3 2012 David Malcolm <dmalcolm@redhat.com> - 2.3.3-3
9d81f5
- remove rhel logic from with_python3 conditional
9d81f5
9d81f5
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.3-2
9d81f5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
9d81f5
9d81f5
* Thu Jan  5 2012 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.3.3-1
9d81f5
- 2.3.3 (2012-01-04)
9d81f5
- Features added
9d81f5
-
9d81f5
-  * lxml.html.tostring() gained new serialisation options with_tail and
9d81f5
-    doctype.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-  * Fixed a crash when using iterparse() for HTML parsing and requesting
9d81f5
-    start events.
9d81f5
-  * Fixed parsing of more selectors in cssselect. Whitespace before pseudo-
9d81f5
-    elements and pseudo-classes is significant as it is a descendant
9d81f5
-    combinator. "E :pseudo" should parse the same as "E *:pseudo", not
9d81f5
-    "E:pseudo". Patch by Simon Sapin.
9d81f5
-  * lxml.html.diff no longer raises an exception when hitting 'img' tags
9d81f5
-    without 'src' attribute.
9d81f5
9d81f5
* Mon Nov 14 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.3.2-1
9d81f5
- 2.3.2 (2011-11-11)
9d81f5
- Features added
9d81f5
-
9d81f5
-   * lxml.objectify.deannotate() has a new boolean option
9d81f5
-     cleanup_namespaces to remove the objectify namespace declarations
9d81f5
-     (and generally clean up the namespace declarations) after removing
9d81f5
-     the type annotations.
9d81f5
-   * lxml.objectify gained its own SubElement() function as a copy of
9d81f5
-     etree.SubElement to avoid an otherwise redundant import of
9d81f5
-     lxml.etree on the user side.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Fixed the "descendant" bug in cssselect a second time (after a first
9d81f5
-      fix in lxml 2.3.1). The previous change resulted in a serious
9d81f5
-      performance regression for the XPath based evaluation of the
9d81f5
-      translated expression. Note that this breaks the usage of some
9d81f5
-      of the generated XPath expressions as XSLT location paths that
9d81f5
-      previously worked in 2.3.1.
9d81f5
-    * Fixed parsing of some selectors in cssselect. Whitespace after
9d81f5
-      combinators ">", "+" and "~" is now correctly ignored. Previously
9d81f5
-      it was parsed as a descendant combinator. For example, "div> .foo"
9d81f5
-      was parsed the same as "div>* .foo" instead of "div>.foo". Patch by
9d81f5
-      Simon Sapin.
9d81f5
9d81f5
* Sun Sep 25 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.3.1-1
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * New option kill_tags in lxml.html.clean to remove specific
9d81f5
-   tags and their content (i.e. their whole subtree).
9d81f5
-
9d81f5
- * pi.get() and pi.attrib on processing instructions to parse
9d81f5
-   pseudo-attributes from the text content of processing instructions.
9d81f5
-
9d81f5
- * lxml.get_include() returns a list of include paths that can be
9d81f5
-   used to compile external C code against lxml.etree.  This is
9d81f5
-   specifically required for statically linked lxml builds when code
9d81f5
-   needs to compile against the exact same header file versions as lxml
9d81f5
-   itself.
9d81f5
-
9d81f5
- * Resolver.resolve_file() takes an additional option
9d81f5
-   close_file that configures if the file(-like) object will be
9d81f5
-   closed after reading or not.  By default, the file will be closed,
9d81f5
-   as the user is not expected to keep a reference to it.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * HTML cleaning didn't remove 'data:' links.
9d81f5
-
9d81f5
- * The html5lib parser integration now uses the 'official'
9d81f5
-   implementation in html5lib itself, which makes it work with newer
9d81f5
-   releases of the library.
9d81f5
-
9d81f5
- * In lxml.sax, endElementNS() could incorrectly reject a plain
9d81f5
-   tag name when the corresponding start event inferred the same plain
9d81f5
-   tag name to be in the default namespace.
9d81f5
-
9d81f5
- * When an open file-like object is passed into parse() or
9d81f5
-   iterparse(), the parser will no longer close it after use.  This
9d81f5
-   reverts a change in lxml 2.3 where all files would be closed.  It is
9d81f5
-   the users responsibility to properly close the file(-like) object,
9d81f5
-   also in error cases.
9d81f5
-
9d81f5
- * Assertion error in lxml.html.cleaner when discarding top-level elements.
9d81f5
-
9d81f5
- * In lxml.cssselect, use the xpath 'A//B' (short for
9d81f5
-   'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for the
9d81f5
-   css descendant selector ('A B'). This makes a few edge cases to be
9d81f5
-   consistent with the selector behavior in WebKit and Firefox, and makes
9d81f5
-   more css expressions valid location paths (for use in xsl:template
9d81f5
-   match).
9d81f5
-
9d81f5
- * In lxml.html, non-selected <option> tags no longer show up in the
9d81f5
-   collected form values.
9d81f5
-
9d81f5
- * Adding/removing <option> values to/from a multiple select form
9d81f5
-   field properly selects them and unselects them.
9d81f5
-
9d81f5
- Other changes
9d81f5
- --------------
9d81f5
-
9d81f5
- * Static builds can specify the download directory with the
9d81f5
-   --download-dir option.
9d81f5
9d81f5
9d81f5
* Tue Apr 19 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.3-1
9d81f5
- 2.3 (2011-02-06)
9d81f5
- ================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * When looking for children, ``lxml.objectify`` takes '{}tag' as
9d81f5
-   meaning an empty namespace, as opposed to the parent namespace.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * When finished reading from a file-like object, the parser
9d81f5
-   immediately calls its ``.close()`` method.
9d81f5
-
9d81f5
- * When finished parsing, ``iterparse()`` immediately closes the input
9d81f5
-   file.
9d81f5
-
9d81f5
- * Work-around for libxml2 bug that can leave the HTML parser in a
9d81f5
-   non-functional state after parsing a severly broken document (fixed
9d81f5
-   in libxml2 2.7.8).
9d81f5
-
9d81f5
- * ``marque`` tag in HTML cleanup code is correctly named ``marquee``.
9d81f5
-
9d81f5
- Other changes
9d81f5
- --------------
9d81f5
-
9d81f5
- * Some public functions in the Cython-level C-API have more explicit
9d81f5
-   return types.
9d81f5
-
9d81f5
- 2.3beta1 (2010-09-06)
9d81f5
- =====================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * Crash in newer libxml2 versions when moving elements between
9d81f5
-   documents that had attributes on replaced XInclude nodes.
9d81f5
-
9d81f5
- * ``XMLID()`` function was missing the optional ``parser`` and
9d81f5
-   ``base_url`` parameters.
9d81f5
-
9d81f5
- * Searching for wildcard tags in ``iterparse()`` was broken in Py3.
9d81f5
-
9d81f5
- * ``lxml.html.open_in_browser()`` didn't work in Python 3 due to the
9d81f5
-   use of os.tempnam.  It now takes an optional 'encoding' parameter.
9d81f5
-
9d81f5
- Other changes
9d81f5
- --------------
9d81f5
-
9d81f5
- 2.3alpha2 (2010-07-24)
9d81f5
- ======================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * Crash in XSLT when generating text-only result documents with a
9d81f5
-   stylesheet created in a different thread.
9d81f5
-
9d81f5
- Other changes
9d81f5
- --------------
9d81f5
-
9d81f5
- * ``repr()`` of Element objects shows the hex ID with leading 0x
9d81f5
-   (following ElementTree 1.3).
9d81f5
-
9d81f5
- 2.3alpha1 (2010-06-19)
9d81f5
- ======================
9d81f5
-
9d81f5
- Features added
9d81f5
- --------------
9d81f5
-
9d81f5
- * Keyword argument ``namespaces`` in ``lxml.cssselect.CSSSelector()``
9d81f5
-   to pass a prefix-to-namespace mapping for the selector.
9d81f5
-
9d81f5
- * New function ``lxml.etree.register_namespace(prefix, uri)`` that
9d81f5
-   globally registers a namespace prefix for a namespace that newly
9d81f5
-   created Elements in that namespace will use automatically.  Follows
9d81f5
-   ElementTree 1.3.
9d81f5
-
9d81f5
- * Support 'unicode' string name as encoding parameter in
9d81f5
-   ``tostring()``, following ElementTree 1.3.
9d81f5
-
9d81f5
- * Support 'c14n' serialisation method in ``ElementTree.write()`` and
9d81f5
-   ``tostring()``, following ElementTree 1.3.
9d81f5
-
9d81f5
- * The ElementPath expression syntax (``el.find*()``) was extended to
9d81f5
-   match the upcoming ElementTree 1.3 that will ship in the standard
9d81f5
-   library of Python 3.2/2.7.  This includes extended support for
9d81f5
-   predicates as well as namespace prefixes (as known from XPath).
9d81f5
-
9d81f5
- * During regular XPath evaluation, various ESXLT functions are
9d81f5
-   available within their namespace when using libxslt 1.1.26 or later.
9d81f5
-
9d81f5
- * Support passing a readily configured logger instance into
9d81f5
-   ``PyErrorLog``, instead of a logger name.
9d81f5
-
9d81f5
- * On serialisation, the new ``doctype`` parameter can be used to
9d81f5
-   override the DOCTYPE (internal subset) of the document.
9d81f5
-
9d81f5
- * New parameter ``output_parent`` to ``XSLTExtension.apply_templates()``
9d81f5
-   to append the resulting content directly to an output element.
9d81f5
-
9d81f5
- * ``XSLTExtension.process_children()`` to process the content of the
9d81f5
-   XSLT extension element itself.
9d81f5
-
9d81f5
- * ISO-Schematron support based on the de-facto Schematron reference
9d81f5
-   'skeleton implementation'.
9d81f5
-
9d81f5
- * XSLT objects now take XPath object as ``__call__`` stylesheet
9d81f5
-   parameters.
9d81f5
-
9d81f5
- * Enable path caching in ElementPath (``el.find*()``) to avoid parsing
9d81f5
-   overhead.
9d81f5
-
9d81f5
- * Setting the value of a namespaced attribute always uses a prefixed
9d81f5
-   namespace instead of the default namespace even if both declare the
9d81f5
-   same namespace URI.  This avoids serialisation problems when an
9d81f5
-   attribute from a default namespace is set on an element from a
9d81f5
-   different namespace.
9d81f5
-
9d81f5
- * XSLT extension elements: support for XSLT context nodes other than
9d81f5
-   elements: document root, comments, processing instructions.
9d81f5
-
9d81f5
- * Support for strings (in addition to Elements) in node-sets returned
9d81f5
-   by extension functions.
9d81f5
-
9d81f5
- * Forms that lack an ``action`` attribute default to the base URL of
9d81f5
-   the document on submit.
9d81f5
-
9d81f5
- * XPath attribute result strings have an ``attrname`` property.
9d81f5
-
9d81f5
- * Namespace URIs get validated against RFC 3986 at the API level
9d81f5
-   (required by the XML namespace specification).
9d81f5
-
9d81f5
- * Target parsers show their target object in the ``.target`` property
9d81f5
-   (compatible with ElementTree).
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
- ----------
9d81f5
-
9d81f5
- * API is hardened against invalid proxy instances to prevent crashes
9d81f5
-   due to incorrectly instantiated Element instances.
9d81f5
-
9d81f5
- * Prevent crash when instantiating ``CommentBase`` and friends.
9d81f5
-
9d81f5
- * Export ElementTree compatible XML parser class as
9d81f5
-   ``XMLTreeBuilder``, as it is called in ET 1.2.
9d81f5
-
9d81f5
- * ObjectifiedDataElements in lxml.objectify were not hashable.  They
9d81f5
-   now use the hash value of the underlying Python value (string,
9d81f5
-   number, etc.) to which they compare equal.
9d81f5
-
9d81f5
- * Parsing broken fragments in lxml.html could fail if the fragment
9d81f5
-   contained an orphaned closing '' tag.
9d81f5
-
9d81f5
- * Using XSLT extension elements around the root of the output document
9d81f5
-   crashed.
9d81f5
-
9d81f5
- * ``lxml.cssselect`` did not distinguish between ``x[attr="val"]`` and
9d81f5
-   ``x [attr="val"]`` (with a space).  The latter now matches the
9d81f5
-   attribute independent of the element.
9d81f5
-
9d81f5
- * Rewriting multiple links inside of HTML text content could end up
9d81f5
-   replacing unrelated content as replacements could impact the
9d81f5
-   reported position of subsequent matches.  Modifications are now
9d81f5
-   simplified by letting the ``iterlinks()`` generator in ``lxml.html``
9d81f5
-   return links in reversed order if they appear inside the same text
9d81f5
-   node.  Thus, replacements and link-internal modifications no longer
9d81f5
-   change the position of links reported afterwards.
9d81f5
-
9d81f5
- * The ``.value`` attribute of ``textarea`` elements in lxml.html did
9d81f5
-   not represent the complete raw value (including child tags etc.). It
9d81f5
-   now serialises the complete content on read and replaces the
9d81f5
-   complete content by a string on write.
9d81f5
-
9d81f5
- * Target parser didn't call ``.close()`` on the target object if
9d81f5
-   parsing failed.  Now it is guaranteed that ``.close()`` will be
9d81f5
-   called after parsing, regardless of the outcome.
9d81f5
-
9d81f5
- Other changes
9d81f5
- -------------
9d81f5
-
9d81f5
- * Official support for Python 3.1.2 and later.
9d81f5
-
9d81f5
- * Static MS Windows builds can now download their dependencies
9d81f5
-   themselves.
9d81f5
-
9d81f5
- * ``Element.attrib`` no longer uses a cyclic reference back to its
9d81f5
-   Element object.  It therefore no longer requires the garbage
9d81f5
-   collector to clean up.
9d81f5
-
9d81f5
- * Static builds include libiconv, in addition to libxml2 and libxslt.
9d81f5
9d81f5
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.8-4
9d81f5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
9d81f5
9d81f5
* Wed Dec 29 2010  David Malcolm <dmalcolm@redhat.com> - 2.2.8-3
9d81f5
- rebuild for newer python3
9d81f5
9d81f5
* Fri Nov  5 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.8-2
9d81f5
- Rebuild for newer libxml2
9d81f5
9d81f5
* Mon Sep  6 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.8-1
9d81f5
- 2.2.8 (2010-09-02)
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-     * Crash in newer libxml2 versions when moving elements between
9d81f5
-       documents that had attributes on replaced XInclude nodes.
9d81f5
-     * Import fix for urljoin in Python 3.1+.
9d81f5
9d81f5
* Tue Aug 24 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.7-3
9d81f5
- Don't byte-compile files during install because setup.py doesn't
9d81f5
  properly byte compile for Python version 3.2
9d81f5
9d81f5
* Sun Aug 22 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.7-2
9d81f5
- Rebuild for Python 3.2
9d81f5
9d81f5
* Mon Jul 26 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.7-1
9d81f5
- 2.2.7 (2010-07-24)
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-     * Crash in XSLT when generating text-only result documents with a stylesheet created in a different thread.
9d81f5
9d81f5
* Mon Jul 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.2.6-4
9d81f5
- actually add the patch this time
9d81f5
9d81f5
* Mon Jul 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.2.6-3
9d81f5
- workaround for 2to3 issue (patch 0; bug 600036)
9d81f5
9d81f5
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.2.6-2
9d81f5
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
9d81f5
9d81f5
* Tue Mar  2 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.6-1
9d81f5
- 2.2.6 (2010-03-02)
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Fixed several Python 3 regressions by building with Cython 0.11.3.
9d81f5
9d81f5
* Mon Mar  1 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.5-1
9d81f5
- 2.2.5 (2010-02-28)
9d81f5
-
9d81f5
- Features added
9d81f5
-
9d81f5
-    * Support for running XSLT extension elements on the input root node
9d81f5
-      (e.g. in a template matching on "/").
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Crash in XPath evaluation when reading smart strings from a document
9d81f5
-      other than the original context document.
9d81f5
-    * Support recent versions of html5lib by not requiring its XHTMLParser
9d81f5
-      in htmlparser.py anymore.
9d81f5
-    * Manually instantiating the custom element classes in lxml.objectify
9d81f5
-      could crash.
9d81f5
-    * Invalid XML text characters were not rejected by the API when they
9d81f5
-      appeared in unicode strings directly after non-ASCII characters.
9d81f5
-    * lxml.html.open_http_urllib() did not work in Python 3.
9d81f5
-    * The functions strip_tags() and strip_elements() in lxml.etree did
9d81f5
-      not remove all occurrences of a tag in all cases.
9d81f5
-    * Crash in XSLT extension elements when the XSLT context node is not
9d81f5
-      an element.
9d81f5
9d81f5
* Mon Feb 15 2010 Thomas Spura <tomspur@fedoraproject.org> - 2.2.4-2
9d81f5
- update to current python3 guidelines
9d81f5
- be more explicit in %%files
9d81f5
- use %%global and not %%define
9d81f5
- create docs subpackage
9d81f5
- add stripping 3-byte Byte Order Marker from src/lxml/tests/test_errors.py
9d81f5
  to get 2to3 to work (dmalcolm)
9d81f5
- fixes FTBFS (#564674)
9d81f5
9d81f5
* Thu Jan 14 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.4-1
9d81f5
- Update to 2.2.4
9d81f5
- Enable Python 3 subpackage
9d81f5
9d81f5
* Thu Nov  5 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.3-3
9d81f5
- F-13's python build chain must be a little different...
9d81f5
9d81f5
* Thu Nov  5 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.3-2
9d81f5
- Add option to build a Python 3 subpackage, original patch by David Malcolm
9d81f5
9d81f5
* Fri Oct 30 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.3-1
9d81f5
- 2.2.3 (2009-10-30)
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * The resolve_entities option did not work in the incremental feed
9d81f5
-      parser.
9d81f5
-    * Looking up and deleting attributes without a namespace could hit a
9d81f5
-      namespaced attribute of the same name instead.
9d81f5
-    * Late errors during calls to SubElement() (e.g. attribute related
9d81f5
-      ones) could leave a partially initialised element in the tree.
9d81f5
-    * Modifying trees that contain parsed entity references could result
9d81f5
-      in an infinite loop.
9d81f5
-    * ObjectifiedElement.__setattr__ created an empty-string child element
9d81f5
-      when the attribute value was rejected as a non-unicode/non-ascii
9d81f5
-      string
9d81f5
-    * Syntax errors in lxml.cssselect could result in misleading error
9d81f5
-      messages.
9d81f5
-    * Invalid syntax in CSS expressions could lead to an infinite loop in
9d81f5
-      the parser of lxml.cssselect.
9d81f5
-    * CSS special character escapes were not properly handled in
9d81f5
-      lxml.cssselect.
9d81f5
-    * CSS Unicode escapes were not properly decoded in lxml.cssselect.
9d81f5
-    * Select options in HTML forms that had no explicit value attribute
9d81f5
-      were not handled correctly. The HTML standard dictates that their
9d81f5
-      value is defined by their text content. This is now supported by
9d81f5
-      lxml.html.
9d81f5
-    * XPath raised a TypeError when finding CDATA sections. This is now
9d81f5
-      fully supported.
9d81f5
-    * Calling help(lxml.objectify) didn't work at the prompt.
9d81f5
-    * The ElementMaker in lxml.objectify no longer defines the default
9d81f5
-      namespaces when annotation is disabled.
9d81f5
-    * Feed parser failed to honour the 'recover' option on parse errors.
9d81f5
-    * Diverting the error logging to Python's logging system was broken.
9d81f5
9d81f5
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.2-2
9d81f5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
9d81f5
9d81f5
* Sun Jun 21 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.2-1
9d81f5
- 2.2.2 (2009-06-21)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * New helper functions strip_attributes(), strip_elements(),
9d81f5
-      strip_tags() in lxml.etree to remove attributes/subtrees/tags
9d81f5
-      from a subtree.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Namespace cleanup on subtree insertions could result in missing
9d81f5
-      namespace declarations (and potentially crashes) if the element
9d81f5
-      defining a namespace was deleted and the namespace was not used
9d81f5
-      by the top element of the inserted subtree but only in deeper
9d81f5
-      subtrees.
9d81f5
-    * Raising an exception from a parser target callback didn't always
9d81f5
-      terminate the parser.
9d81f5
-    * Only {true, false, 1, 0} are accepted as the lexical representation
9d81f5
-      for BoolElement ({True, False, T, F, t, f} not any more), restoring
9d81f5
-      lxml <= 2.0 behaviour.
9d81f5
9d81f5
* Tue Jun  2 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2.1-1
9d81f5
- 2.2.1 (2009-06-02)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * Injecting default attributes into a document during XML Schema
9d81f5
-      validation (also at parse time).
9d81f5
-    * Pass huge_tree parser option to disable parser security restrictions
9d81f5
-      imposed by libxml2 2.7.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * The script for statically building libxml2 and libxslt didn't work
9d81f5
-      in Py3.
9d81f5
-    * XMLSchema() also passes invalid schema documents on to libxml2 for
9d81f5
-      parsing (which could lead to a crash before release 2.6.24).
9d81f5
9d81f5
* Tue Mar 24 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-1
9d81f5
- 2.2 (2009-03-21)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * Support for standalone flag in XML declaration through
9d81f5
-      tree.docinfo.standalone and by passing standalone=True/False on
9d81f5
-      serialisation.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Crash when parsing an XML Schema with external imports from a
9d81f5
-      filename.
9d81f5
9d81f5
* Fri Feb 27 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.8.beta4
9d81f5
- 2.2beta4 (2009-02-27)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * Support strings and instantiable Element classes as child arguments
9d81f5
-      to the constructor of custom Element classes.
9d81f5
-    * GZip compression support for serialisation to files and file-like
9d81f5
-      objects.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Deep-copying an ElementTree copied neither its sibling PIs and
9d81f5
-      comments nor its internal/external DTD subsets.
9d81f5
-    * Soupparser failed on broken attributes without values.
9d81f5
-    * Crash in XSLT when overwriting an already defined attribute using
9d81f5
-      xsl:attribute.
9d81f5
-    * Crash bug in exception handling code under Python 3. This was due to
9d81f5
-      a problem in Cython, not lxml itself.
9d81f5
-    * lxml.html.FormElement._name() failed for non top-level forms.
9d81f5
-    * TAG special attribute in constructor of custom Element classes was
9d81f5
-      evaluated incorrectly.
9d81f5
-
9d81f5
- Other changes
9d81f5
-
9d81f5
-    * Official support for Python 3.0.1.
9d81f5
-    * Element.findtext() now returns an empty string instead of None for
9d81f5
-      Elements without text content.
9d81f5
9d81f5
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-0.7.beta3
9d81f5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
9d81f5
9d81f5
* Tue Feb 17 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.6.beta3
9d81f5
- 2.2beta3 (2009-02-17)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * XSLT.strparam() class method to wrap quoted string parameters that
9d81f5
-     require escaping.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Memory leak in XPath evaluators.
9d81f5
-    * Crash when parsing indented XML in one thread and merging it with
9d81f5
-      other documents parsed in another thread.
9d81f5
-    * Setting the base attribute in lxml.objectify from a unicode string
9d81f5
-      failed.
9d81f5
-    * Fixes following changes in Python 3.0.1.
9d81f5
-    * Minor fixes for Python 3.
9d81f5
-
9d81f5
- Other changes
9d81f5
-
9d81f5
-    * The global error log (which is copied into the exception log) is now
9d81f5
-      local to a thread, which fixes some race conditions.
9d81f5
-    * More robust error handling on serialisation.
9d81f5
9d81f5
* Sun Jan 25 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.5.beta2
9d81f5
- 2.2beta2 (2009-01-25)
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Potential memory leak on exception handling. This was due to a
9d81f5
-      problem in Cython, not lxml itself.
9d81f5
-    * iter_links (and related link-rewriting functions) in lxml.html would
9d81f5
-      interpret CSS like url("link") incorrectly (treating the quotation
9d81f5
-      marks as part of the link).
9d81f5
-    * Failing import on systems that have an io module.
9d81f5
9d81f5
* Fri Dec 12 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.4.beta1
9d81f5
- 2.2beta1 (2008-12-12)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * Allow lxml.html.diff.htmldiff to accept Element objects,
9d81f5
-      not just HTML strings.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Crash when using an XPath evaluator in multiple threads.
9d81f5
-    * Fixed missing whitespace before Link:... in lxml.html.diff.
9d81f5
-
9d81f5
- Other changes
9d81f5
-
9d81f5
-    * Export lxml.html.parse.
9d81f5
9d81f5
* Fri Nov 28 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.3.alpha1
9d81f5
- Rebuild for Python 2.6
9d81f5
9d81f5
* Mon Nov 24 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.2.alpha1
9d81f5
- Don't forget to upload the sources!
9d81f5
9d81f5
* Mon Nov 24 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.2-0.1.alpha1
9d81f5
- 2.2alpha1 (2008-11-23)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * Support for XSLT result tree fragments in XPath/XSLT extension
9d81f5
-      functions.
9d81f5
-    * QName objects have new properties namespace and localname.
9d81f5
-    * New options for exclusive C14N and C14N without comments.
9d81f5
-    * Instantiating a custom Element classes creates a new Element.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * XSLT didn't inherit the parse options of the input document.
9d81f5
-    * 0-bytes could slip through the API when used inside of Unicode
9d81f5
-      strings.
9d81f5
-    * With lxml.html.clean.autolink, links with balanced parenthesis, that
9d81f5
-      end in a parenthesis, will be linked in their entirety (typical with
9d81f5
-      Wikipedia links).
9d81f5
9d81f5
* Mon Nov 17 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.1.3-1
9d81f5
- 2.1.3 (2008-11-17)
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Ref-count leaks when lxml enters a try-except statement while an
9d81f5
-      outside exception lives in sys.exc_*(). This was due to a problem
9d81f5
-      in Cython, not lxml itself.
9d81f5
-    * Parser Unicode decoding errors could get swallowed by other
9d81f5
-      exceptions.
9d81f5
-    * Name/import errors in some Python modules.
9d81f5
-    * Internal DTD subsets that did not specify a system or public ID
9d81f5
-      were not serialised and did not appear in the docinfo property
9d81f5
-      of ElementTrees.
9d81f5
-    * Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.
9d81f5
-    * Test suite fixes for libxml2 2.7.
9d81f5
-    * Resolver.resolve_string() did not work for non-ASCII byte strings.
9d81f5
-    * Resolver.resolve_file() was broken.
9d81f5
-    * Overriding the parser encoding didn't work for many encodings.
9d81f5
9d81f5
* Fri Sep  5 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.1.2-1
9d81f5
- 2.1.2 (2008-09-05)
9d81f5
- Features added
9d81f5
-
9d81f5
-    * lxml.etree now tries to find the absolute path name of files when
9d81f5
-      parsing from a file-like object. This helps custom resolvers when
9d81f5
-      resolving relative URLs, as lixbml2 can prepend them with the path of
9d81f5
-      the source document.
9d81f5
-
9d81f5
- Bugs fixed
9d81f5
-
9d81f5
-    * Memory problem when passing documents between threads.
9d81f5
-    * Target parser did not honour the recover option and raised an exception
9d81f5
-      instead of calling .close() on the target.
9d81f5
9d81f5
* Fri Jul 25 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.1.1-1
9d81f5
- Update to 2.1.1
9d81f5
9d81f5
* Fri Jun 20 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.0.7-1
9d81f5
- Update to 2.0.7
9d81f5
- Update download URL
9d81f5
9d81f5
* Sat May 31 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.0.6-1
9d81f5
- Update to 2.0.6
9d81f5
9d81f5
* Thu May  8 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.0.5-1
9d81f5
- Update to 2.0.5
9d81f5
9d81f5
* Wed Mar 26 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.0.3-1
9d81f5
- Update to 2.0.3
9d81f5
9d81f5
* Sat Feb 23 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.0.2-1
9d81f5
- Update to 2.0.2
9d81f5
9d81f5
* Tue Feb 19 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.0.1-1
9d81f5
- Update to 2.0.1
9d81f5
9d81f5
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.3.6-2
9d81f5
- Autorebuild for GCC 4.3
9d81f5
9d81f5
* Fri Nov 16 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.3.6-1
9d81f5
- Update to 1.3.6.
9d81f5
9d81f5
* Mon Oct 22 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.3.5-1
9d81f5
- Update to 1.3.5.
9d81f5
9d81f5
* Thu Aug 30 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.3.4-1
9d81f5
- Update to 1.3.4.
9d81f5
9d81f5
* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 1.3.3-3
9d81f5
- Rebuild for selinux ppc32 issue.
9d81f5
9d81f5
* Tue Aug 28 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.3.3-2
9d81f5
- BR python-setuptools-devel
9d81f5
9d81f5
* Mon Jul 30 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.3.3-1
9d81f5
- Update to 1.3.3
9d81f5
9d81f5
* Fri Jan 19 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.2-1
9d81f5
- Update to 1.1.2
9d81f5
9d81f5
* Thu Dec 14 2006 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.0.3-3
9d81f5
- Rebuild for new Python
9d81f5
9d81f5
* Sat Sep 16 2006 Shahms E. King <shahms@shahms.com> 1.0.3-2
9d81f5
- Rebuild for FC6
9d81f5
9d81f5
* Thu Aug 17 2006 Shahms E. King <shahms@shahms.com> 1.0.3-1
9d81f5
- Update to new upstream version
9d81f5
9d81f5
* Fri Aug 11 2006 Shahms E. King <shahms@shahms.com> 1.0.2-2
9d81f5
- Include, don't ghost .pyo files per new guidelines
9d81f5
9d81f5
* Fri Jul 07 2006 Shahms E. King <shahms@shahms.com> 1.0.2-1
9d81f5
- Update to new upstream release
9d81f5
9d81f5
* Mon Jun 26 2006 Shahms E. King <shahms@shahms.com> 1.0.1-1
9d81f5
- Update to new upstream release
9d81f5
9d81f5
* Fri Jun 02 2006 Shahms E. King <shahms@shahms.com> 1.0-1
9d81f5
- Update to new upstream 1.0 release
9d81f5
9d81f5
* Wed Apr 26 2006 Shahms E. King <shahms@shahms.com> 0.9.1-3
9d81f5
- Add python-setuptools to BuildRequires
9d81f5
- Use dist tag
9d81f5
9d81f5
* Wed Apr 26 2006 Shahms E. King <shahms@shahms.com> 0.9.1-2
9d81f5
- Fix summary and description
9d81f5
9d81f5
* Tue Apr 18 2006 Shahms E. King <shahms@shahms.com> 0.9.1-1
9d81f5
- update the new upstream version
9d81f5
- remove Pyrex build req
9d81f5
9d81f5
* Tue Dec 13 2005 Shahms E. King <shahms@shahms.com> 0.8-1
9d81f5
- Initial package