xref: /aosp_15_r20/external/libxml2/NEWS (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1NEWS file for libxml2
2
3v2.14.0: not released yet
4
5### Major changes
6
7The HTML tokenizer now conforms fully to HTML5. Note that HTML5 tree
8construction isn't implemented yet.
9
10Input callbacks can now be set on a parser context and an improved API
11to create parser input is available.
12
13A new API function xmlCtxtParseContent to parse XML content using an
14existing parser context was added.
15
16The xmlSave API now has additional options to replace global settings.
17
18Parser options XML_PARSE_NO_UNZIP, XML_PARSE_NO_SYS_CATALOG and
19XML_PARSE_NO_CATALOG_PI were added.
20
21The serialization API will now take user-provided or default encodings
22into account when serializing attribute values, matching the
23serialization of text and avoiding unnecessary escaping.
24
25Access to many public struct members is now deprecated. Several accessor
26functions were added.
27
28Metadata about the HTML4 content model was removed from the htmlElemDesc
29struct and related functions were deprecated.
30
31The FTP module and related functions were removed.
32
33Support for the range and point extensions of the xpointer() scheme
34were removed. The rest of the XPointer implementation isn't affected.
35The xpointer() scheme now behaves like the xpath1() scheme.
36
37Several legacy functions were removed from the header files.
38
39The shell was moved from libxml2 to xmllint. Several related functions
40are no longer available.
41
42
43v2.13.0: Jun 12 2024
44
45### Major changes
46
47Most of the core code should now report malloc failures reliably. Some
48API functions were extended with versions that report malloc failures.
49
50New API functions for error handling were added:
51
52- xmlCtxtSetErrorHandler
53- xmlXPathSetErrorHandler
54- xmlXIncludeSetErrorHandler
55
56This makes it possible to register per-context error handlers without
57resorting to global handlers.
58
59A few error messages were improved and consolidated. Please update
60downstream test suites accordingly.
61
62A new parser option XML_PARSE_NO_XXE can be used to disable loading
63of external entities or DTDs. This is most useful in connection with
64XML_PARSE_NOENT.
65
66Support for HTTP POST was removed.
67
68Support for zlib, liblzma and HTTP is now disabled by default and has
69to be enabled by passing --with-zlib, --with-lzma or --with-http to
70configure. In legacy mode (--with-legacy) these options are enabled
71by default as before.
72
73Support for FTP will be removed in the next release.
74
75Support for the range and point extensions of the xpointer() scheme
76will be removed in the next release. The rest of the XPointer
77implementation won't be affected. The xpointer() scheme will behave
78like the xpath1() scheme.
79
80Several more legacy symbols were deprecated. Users of the old "SAX1"
81API functions are encouraged to upgrade to the new "SAX2" API,
82available since version 2.6.0 from 2003.
83
84Some deprecated global variables were made const:
85
86- htmlDefaultSAXHandler
87- oldXMLWDcompatibility
88- xmlDefaultSAXHandler
89- xmlDefaultSAXLocator
90- xmlParserDebugEntities
91
92### Deprecations and removals
93
94- threads: Deprecate remaining ThrDef functions
95- unicode: Deprecate most xmlUCSIs* functions
96- memory: Remove memory debugging
97- tree: Deprecate xmlRegisterNodeDefault
98- tree: Deprecate xmlSetCompressMode
99- html: Deprecate htmlHandleOmittedElem
100- valid: Deprecate internal validation functions
101- valid: Deprecate old DTD serialization API
102- nanohttp: Deprecate public API
103- Remove VMS support
104- Remove Trio
105
106### Bug fixes
107
108- parser: Fix base URI of internal parameter entities
109- tree: Handle predefined entities in xmlBufGetEntityRefContent
110- schemas: Allow unlimited length decimals, integers etc. (Tomáš Ženčák)
111- reader: Fix preservation of attributes
112- parser: Always decode entities in namespace URIs
113- relaxng: Fix tree corruption in xmlRelaxNGParseNameClass (Seiya Nakata)
114- schemas: Fix ADD_ANNOTATION
115- tree: Fix tree iteration in xmlDOMWrapRemoveNode
116- tree: Declare namespace on clone in xmlDOMWrapCloneNode
117- tree: Fix xmlAddSibling with last sibling
118- tree: Fix xmlDocSetRootElement with multiple top-level elements
119- catalog: Fetch XML catalog before dumping
120- html: Don't close fd in htmlCtxtReadFd
121
122### Improvements
123
124- parser: Fix "Truncated multi-byte sequence" error
125- Add missing _cplusplus processing clause (Sadaf Ebrahimi)
126- parser: Rework handling of undeclared entities
127- SAX2: Warn if URI resolution failed
128- parser: Don't report error on invalid URI
129- xmllint: Clean up option handling
130- xmllint: Rework parsing
131- parser: Don't create undeclared entity refs in substitution mode
132- Make some globals const
133- reader: Make xmlTextReaderReadString non-recursive
134- reader: Rework xmlTextReaderRead{Inner,Outer}Xml
135- Remove redundant size check (Niels Dossche)
136- Remove redundant NULL check on cur (Niels Dossche)
137- Remove always-false check old == cur (Niels Dossche)
138- Remove redundant NULL check on cur (Niels Dossche)
139- tree: Don't return empty localname in xmlSplitQName{2,3}
140- xinclude: Don't try to fix base of non-elements
141- tree: Don't coalesce text nodes in xmlAdd{Prev,Next}Sibling
142- SAX2: Optimize appending children
143- tree: Align xmlAddChild with other node insertion functions
144- html: Use binary search in htmlEntityValueLookup
145- io: Allocate output buffer with XML_BUFFER_ALLOC_IO
146- encoding: Don't shrink input too early in xmlCharEncOutput
147- tree: Tighten source doc check in xmlDOMWrapAdoptNode
148- tree: Check destParent->doc in xmlDOMWrapCloneNode
149- tree: Refactor text node updates
150- tree: Refactor node insertion
151- tree: Refactor element creation and parsing of attribute values
152- tree: Simplify xmlNodeGetContent, xmlBufGetNodeContent
153- buf: Don't use default buffer size for small strings
154- string: Fix xmlStrncatNew(NULL, "")
155- entities: Don't allow null name in xmlNewEntity
156- html: Fix quadratic behavior in htmlNodeDump
157- tree: Rewrite xmlSetTreeDoc
158- valid: Rework xmlAddID
159- tree: Remove unused node types
160- tree: Make namespace comparison more consistent
161- tree: Don't allow NULL name in xmlSetNsProp
162- tree: Rework xmlNodeListGetString
163- tree: Rework xmlTextMerge
164- tree: Rework xmlNodeSetName
165- tree: Simplify xmlAddChild with text parent
166- tree: Disallow setting content of entity reference nodes
167- tree: Rework xmlReconciliateNs
168- schemas: fix spurious warning about truncated snprintf output
169  (Benjamin Gilbert)
170- xmlschemastypes: Remove unreachable if statement (Maks Mishin)
171- relaxng: Remove useless if statement (Maks Mishin)
172- tree: Check for integer overflow in xmlStringGetNodeList
173- http: Improve error message for HTTPS redirects
174- catalog: Remove Windows hack
175- save: Move DTD serialization code to xmlsave.c
176- parser: Report fatal error if document entity couldn't be loaded
177- xpath: Fix return of empty node-set in xmlXPathNodeCollectAndTest
178- SAX2: Limit entity URI length to 2000 bytes
179- parser: Account for full size of non-well-formed entities
180- parser: Pop inputs if parsing DTD failed
181- parser: Fix quadratic behavior when copying entities
182- writer: Implement xmlTextWriterClose
183- parser: Avoid duplicate namespace errors
184- parser: Add XML_PARSE_NO_XXE parser option
185- parser: Make xmlParseContent more useful
186- error: Make xmlFormatError public
187- encoding: Check whether encoding handlers support input/output
188- SAX2: Enforce size limit in xmlSAX2Text with XML_PARSE_HUGE
189- parser: Lower maximum entity nesting depth
190- parser: Set depth limit to 2048 with XML_PARSE_HUGE
191- parser: Implement xmlCtxtSetOptions
192- parser: Always prefer option members over bitmask
193- parser: Don't modify SAX2 handler if XML_PARSE_SAX1 is set
194- parser: Rework parsing of attribute and entity values
195- save: Output U+FFFD replacement characters
196- parser: Simplify entity size accounting
197- parser: Avoid unwanted expansion of parameter entities
198- parser: Always copy content from entity to target
199- parser: Simplify control flow in xmlParseReference
200- parser: Remove xmlSetEntityReferenceFunc feature
201- parser: Push general entity input streams on the stack
202- parser: Move progressive flag into input struct
203- parser: Fix in-parameter-entity and in-external-dtd checks
204- xpath: Rewrite substring-before and substring-after
205- xinclude: Only set xml:base if necessary
206- xinclude: Allow empty nodesets
207- parser: Rework general entity parsing
208- io: Fix close error handling
209- io: Fix read/write error handling
210- io: More refactoring and unescaping fixes
211- io: Move some code from xmlIO.c to parserInternals.c
212- uri: Clean up special parsing modes
213- xinclude: Rework xml:base fixup
214- parser: Also set document properties when push parsing
215- include: Move non-generated parts from xmlversion.h.in
216- io: Remove support for HTTP POST
217- dict: Move local RNG state to global state
218- dict: Get random seed from system PRNG
219- io: Don't use "-" to read from stdin
220- io: Rework initialization
221- io: Consolidate error messages
222- xzlib: Fix harmless unsigned integer overflow
223- io: Always use unbuffered input
224- io: Fix detection of compressed streams
225- io: Pass error codes from xmlFileOpenReal to xmlNewInputFromFile
226- io: Rework default callbacks
227- error: Stop printing some errors by default
228- xpath: Don't free nodes of XSLT result value trees
229- valid: Fix handling of enumerations
230- parser: Allow recovery in xmlParseInNodeContext
231- encoding: Support ASCII in xmlLookupCharEncodingHandler
232- include: Remove useless 'const' from function arguments
233- Avoid EDG -Wignored-qualifiers warnings on wrong 'const *' to '* const'
234  conversions (makise-homura)
235- Avoid EDG deprecation warnings for LCC compiler (makise-homura)
236- Avoid EDG -Woverflow warnings on truncating conversions by manually
237  truncating operand (makise-homura)
238- Avoid EDG -Wtype-limits warnings on unsigned comparisons with zero by
239  conversion from unsigned int to int (makise-homura)
240- Avoid using no_sanitize attribute on EDG even if compiler shows as GCC
241  (makise-homura)
242
243### Build systems
244
245- meson: convert boolean options to feature option (Rosen Penev)
246- meson: Pass LIBXML_STATIC in dependency (Andrew Potter)
247- meson: fix compilation with local binaries (Rosen Penev)
248- meson: don't use dl dependency on old meson (Rosen Penev)
249- meson: fix usage as a subproject (Rosen Penev)
250- autotools: Fix pthread detection on FreeBSD
251- build: Remove --with-fexceptions configuration option
252- autotools: Remove --with-coverage configuration option
253- build: Disable HTTP support by default
254- Stop defining _REENTRANT
255- doc: Don't install example code
256- meson: Initial commit (Vincent Torri)
257- build: Disable support for compression libraries by default
258- Set LIBXML2_FOUND if it has been properly configured (Michele Bianchi)
259- Makefile.am: omit $(top_builddir) from DEPS and LDADDS (Mike Dalessio)
260
261### Test suite
262
263- runtest: Work around broken EUC-JP support in musl iconv
264- runtest: Check for IBM-1141 encoding handler
265- fuzz: Add xmllint fuzzer
266- fuzz: Add fuzzer for XML reader API
267- fuzz: New tree API fuzzer
268- tests: Remove testOOM
269- Don't let gentest.py cast types to 'const somethingPtr' to avoid
270  -Wignored-qualifiers (makise-homura)
271
272
273v2.12.8: Jun 12 2024
274
275### Regressions
276
277- parser: Fix performance regression when parsing namespaces
278
279
280v2.12.7: May 13 2024
281
282### Security
283
284- [CVE-2024-34459] Fix buffer overread with `xmllint --htmlout`
285
286### Regressions
287
288- xmllint: Fix --pedantic option
289- save: Handle invalid parent pointers in xhtmlNodeDumpOutput
290
291
292v2.12.6: Mar 15 2024
293
294### Regressions
295
296- parser: Fix detection of duplicate attributes in XML namespace
297- xmlreader: Fix xmlTextReaderConstEncoding
298- html: Fix htmlCreatePushParserCtxt with encoding
299- xmllint: Return error code if XPath returns empty nodeset
300
301
302v2.12.5: Feb 4 2024
303
304### Security
305
306- [CVE-2024-25062] xmlreader: Don't expand XIncludes when backtracking
307
308### Regressions
309
310- parser: Fix crash in xmlParseInNodeContext with HTML documents
311
312
313v2.12.4: Jan 15 2024
314
315### Regressions
316
317- parser: Fix regression parsing standalone declarations
318- autotools: Readd --with-xptr-locs configuration option
319- parser: Fix build --without-output
320- parser: Don't grow or shrink pull parser memory buffers
321- io: Fix memory lifetime issue with input buffers
322
323
324v2.12.3: Dec 12 2023
325
326### Regressions
327
328- parser: Fix namespaces redefined from default attributes
329
330### Build fixes
331
332- include: Rename XML_EMPTY helper macro
333- include: Move declaration of xmlInitGlobals
334- include: Add missing includes
335- include: Move globals from xmlsave.h to parser.h
336- include: Readd circular dependency between tree.h and parser.h
337
338
339v2.12.2: Dec 5 2023
340
341### Regressions
342
343- parser: Fix invalid free in xmlParseBalancedChunkMemoryRecover
344- globals: Disable TLS in static Windows builds
345- html: Reenable buggy detection of XML declarations
346- tree: Fix regression when copying DTDs
347- parser: Make CRLF increment line number
348
349### Build fixes
350
351- build: Disable compiler TLS by default
352- cmake: Update config.h.cmake.in
353- tests: Fix tests --with-valid --without-xinclude
354
355
356v2.12.1: Nov 23 2023
357
358### Regressions
359
360- hash: Fix deletion of entries during scan
361- parser: Only enable SAX2 if there are SAX2 element handlers
362
363### Build fixes
364
365- autotools: Stop checking for snprintf
366- dict: Fix '__thread' before 'static'
367- fix: pthread weak references in globals.c (Mike Dalessio)
368- tests: Fix build with older MSVC
369
370
371v2.12.0: Nov 16 2023
372
373### Major changes
374
375Most of the known issues leading to quadratic behavior in the XML parser
376were fixed. Internal hash tables were rewritten to reduce memory
377consumption.
378
379Starting with this release, it should be enough to add the --with-legacy
380configuration option to provide maximum ABI compatibility. For example,
381if a code module was removed from the default configuration, the option
382will add stubs for the removed symbols.
383
384libxml2 will now store global variables in thread-local storage if supported
385by the compiler. This avoids allocating the data lazily which can result in
386a fatal error condition. A new API function xmlCheckThreadLocalStorage
387was added so the allocation can be checked earlier if compiler TLS is not
388supported. To prepare for future improvements, some API functions now expect
389or return a const xmlError struct.
390
391Several cyclic dependencies in public header files were fixed. As a result,
392certain headers won't include other headers as before.
393
394Refactoring of the encoding code has been mostly completed. Calling
395xmlSwitchEncoding from client code is now fully supported, for example to
396override the encoding for the push parser.
397
398When parsing data from memory, libxml2 will now stream data chunk by chunk
399instead of copying the whole buffer (possibly twice with encodings),
400reducing peak memory consumption considerably.
401
402A new API function xmlCtxtSetMaxAmplification was added to allow parsing
403of files that would otherwise trigger the billion laughs protection.
404
405Several bugs in the regex determinism checks were fixed. Invalid XML
406Schemas which previous versions erroneously accepted will now be
407rejected.
408
409### Deprecations
410
411- globals: Deprecate xmlLastError
412- parser: Deprecate global parser options
413- win32: Deprecate old Windows build system
414
415### Bug fixes
416
417- parser: Stop switching to ISO-8859-1 on encoding errors
418- parser: Support encoded external PEs in entity values
419- string: Fix UTF-8 validation in xmlGetUTF8Char
420- SAX2: Allow multiple top-level elements
421- parser: Update line number after coalescing text nodes
422- parser: Check for truncated multi-byte sequences
423
424### Improvements
425
426- error: Make more xmlError structs constant
427- parser: Remove redundant IS_CHAR check in xmlCurrentChar
428- parser: Fix stack handling in xmlParseTryOrFinish
429- parser: Protect against quadratic default attribute expansion
430- parser: Missing checks for disableSAX
431- entities: Make xmlFreeEntity public
432- examples: Don't use sprintf
433- encoding: Suppress -Wcast-align warnings
434- parser: Use hash tables to avoid quadratic behavior
435- parser: Don't skip CR in xmlCurrentChar
436- dict: Rewrite dictionary hash table code
437- hash: Rewrite hash table code
438- malloc-fail: Report malloc failure in xmlFARegExec
439- malloc-fail: Report malloc failure in xmlRegEpxFromParse
440- parser: Simplify xmlStringCurrentChar
441- regexp: Fix status codes and handle invalid UTF-8
442- error: Make xmlGetLastError return a const error
443- html: Fix logic in htmlAutoClose
444- globals: Move globals back to correct header files
445- globals: Use thread-local storage if available
446- globals: Rework global state destruction on Windows
447- globals: Define globals using macros
448- globals: Introduce xmlCheckThreadLocalStorage
449- globals: Make xmlGlobalState private
450- threads: Move library initialization code to threads.c
451- debug: Remove debugging code
452- globals: Move code from threads.c to globals.c
453- parser: Avoid undefined behavior in xmlParseStartTag2
454- schemas: Fix memory leak of annotations in notations
455- dict: Update hash function
456- dict: Use thread-local storage for PRNG state
457- dict: Use xoroshiro64** as PRNG
458- xmllint: Fix error messages
459- parser: Fix detection of null bytes
460- parser: Improve error handling in push parser
461- parser: Don't check inputNr in xmlParseTryOrFinish
462- parser: Remove push parser debugging code
463- tree: Fix copying of DTDs
464- legacy: Add stubs for disabled modules
465- parser: Allow to set maximum amplification factor
466- entities: Don't change doc when encoding entities
467- parser: Never use UTF-8 encoding handler
468- encoding: Remove debugging code
469- malloc-fail: Fix unsigned integer overflow in xmlTextReaderPushData
470- html: Remove encoding hack in htmlCreateFileParserCtxt
471- parser: Decode all data in xmlCharEncInput
472- parser: Stream data when reading from memory
473- parser: Optimize xmlLoadEntityContent
474- parser: Don't overwrite EOF parser state
475- parser: Simplify input pointer updates
476- parser: Don't reinitialize parser input members
477- encoding: Move rawconsumed accounting to xmlCharEncInput
478- parser: Rework encoding detection
479- parser: Always create UTF-8 in xmlParseReference
480- html: Remove some debugging code in htmlParseTryOrFinish
481- malloc-fail: Fix memory leak in xmlCompileAttributeTest
482- parser: Recover more input from encoding errors
483- malloc-fail: Handle malloc failures in xmlAddEncodingAlias
484- malloc-fail: Fix null-deref with xmllint --copy
485- xpath: Ignore entity ref nodes when computing node hash
486- malloc-fail: Fix null deref after xmlXIncludeNewRef
487- SAX: Always validate xml:ids
488- Stop using sprintf
489- Fix compiler warning on GCC < 8
490- regexp: Fix determinism checks
491- regexp: Fix checks for eliminated transitions
492- regexp: Simplify xmlFAReduceEpsilonTransitions
493- regexp: Fix cycle check in xmlFAReduceEpsilonTransitions
494- schemas: Fix filename in xmlSchemaValidateFile
495- schemas: Fix line numbers in streaming validation
496- writer: Add error check in xmlTextWriterEndDocument
497- encoding: Stop calling xmlEncodingErr
498- xmlIO: Remove some calls to xmlIOErr
499- parser: Improve handling of encoding and IO errors
500- parser: Move xmlFatalErr to parserInternals.c
501- encoding: Rework error codes
502- .gitignore: Split up and rearrange .gitignore files
503- .gitignore: Add runsuite.log
504- Stop calling xmlMemoryDump
505- examples: Don't call xmlCleanupParser and xmlMemoryDump
506- xpath: Remove remaining references to valueFrame
507
508### Portability
509
510- python: Make it compatible with python3.12 (Daniel Garcia Moreno)
511
512### Build systems
513
514- cmake: Check whether static linking dependencies found in config files
515  (James Le Cuirot)
516- autotools: Make --with-minimum disable lzma support
517- build: Remove some GCC warnings
518- Handle NOCONFIG case when setting locations from CMake target properties
519  (Markus Rickert)
520- cmake: Generate better pkg-config file for SYSROOT builds under CMake
521  (James Le Cuirot)
522- autoconf: Include non-pkg-config dependency flags in the pkg-config file
523  (James Le Cuirot)
524- autoconf: Don't bake build time CFLAGS into pkg-config file (James Le Cuirot)
525- build: Generate better pkg-config files for static-only builds (James
526  Le Cuirot)
527- build: Generate better pkg-config file for SYSROOT builds (James Le Cuirot)
528- autoconf: Allow custom --with-icu configure option
529
530### Tests
531
532- tests: Also test xmlNextChar in testchar.c
533- tests: Start with testparser.c for extra tests
534- fuzz: Raise rss_limit_mb
535- fuzz: Test xmlTextReaderRead after EOF or failure
536- fuzz: Test XML_PARSE_XINCLUDE | XML_PARSE_VALID
537- tests: Handle entities in SAX tests
538- fuzz: Disable XML_PARSE_SAX1 option in xml fuzzer
539- tests: Add more tests for redefined attributes
540- hash: Add hash table tests
541- tests: Add ATTRIBUTE_NO_SANITIZE_INTEGER macro
542- fuzz: Allow to fuzz without push, reader or output modules
543- gitlab-ci: Add a "medium" config build
544- python: Fix tests on MinGW
545- test: Add push parser test with overridden encoding
546- testapi: test_xmlSAXDefaultVersion() leaves xmlSAX2DefaultVersionValue set
547  to 1 with LIBXML_SAX1_ENABLED (David Kilzer)
548- gitlab-ci: Lower _XOPEN_SOURCE value
549- testapi: Don't set http_proxy environment variable
550- test: Add push parser tests for split UTF-8 sequences
551- xinclude: Lower initial table size when fuzzing
552- tests: Test streaming schema validation
553- runtest: Skip element name in schema error messages
554
555### Documentation
556
557- doc: Add notes about runtest to MAINTAINERS.md
558- doc: Don't document internal macros in xmlversion.h
559- doc: Allow 'unsigned' without 'int'
560- doc: Improve documentation of configuration options
561
562
563v2.11.6: Nov 16 2023
564
565### Regressions
566
567- threads: Fix --with-thread-alloc
568- xinclude: Fix 'last' pointer in xmlXIncludeCopyNode
569
570### Bug fixes
571
572- parser: Fix potential use-after-free in xmlParseCharDataInternal
573
574
575v2.11.5: Aug 9 2023
576
577### Regressions
578
579- parser: Make xmlSwitchEncoding always skip the BOM
580- autotools: Improve iconv check
581
582### Bug fixes
583
584- valid: Fix c1->parent pointer in xmlCopyDocElementContent
585- encoding: Always call ucnv_convertEx with flush set to false
586
587### Portability
588
589- autotools: fix Python module file ext for cygwin/msys2 (Christoph Reiter)
590
591### Tests
592
593- runtest: Fix compilation without LIBXML_HTML_ENABLED
594
595
596v2.11.4: May 18 2023
597
598Fixes a serious regression.
599
600- parser: Fix regression when push parsing UTF-8 sequences
601
602
603v2.11.3: May 11 2023
604
605Fixes more regressions.
606
607- xinclude: Fix false positives in inclusion loop detection
608- autotools: Fix ICU detection
609- parser: Fix "huge input lookup" error with push parser
610- xpath: Fix build without LIBXML_XPATH_ENABLED
611- hash: Fix possible startup crash with old libxslt versions
612- autoconf: fix iconv library paths (Mike Dalessio)
613
614
615v2.11.2: May 5 2023
616
617Fix regressions.
618
619- threads: Fix startup crash with weak symbol hack
620- win32: Don't depend on removed .def file
621- schemas: Fix memory leak in xmlSchemaValidateStream
622
623
624v2.11.1: Apr 30 2023
625
626Fixes build and ABI issues.
627
628- cmake: Fix va_copy detection (Luca Niccoli)
629- libxml.m4: Fix quoting
630- Link with --undefined-version
631- libxml2.syms: Revert removal of version information
632
633
634v2.11.0: Apr 28 2023
635
636### Major changes
637
638Protection against entity expansion attacks, also known as "billion laughs"
639has been greatly improved. Malicious files should be detected reliably now
640and false positives should be reduced. It is possible though that large
641documents which make heavy use of entities are rejected now.
642
643This release finally fixes symbol visibility on UNIX systems. Internal
644symbols will now be hidden. While these symbols were never declared in public
645headers, it was still possible to declare them manually. Now this won't work.
646
647All symbol information has been removed from the ELF version script to fix
648link errors with --no-undefined-version. The version nodes are kept so it
649should still be possible to run binaries linked against older versions.
650
651About 90 memory errors in code paths handling malloc failures have been fixed.
652While these issues shouldn't impact security, this improves robustness under
653memory pressure.
654
655The XInclude engine has been reworked to properly support nested includes.
656
657Several cases of quadratic behavior in the XML push parser have been fixed.
658
659Refactoring has begun on some buffering and encoding code with the goal of
660simplifying this part of the code base and improving error reporting.
661
662Other highlights:
663
664- Consolidated private header files.
665- Major rework of the autoconf build.
666- Deprecated several outdated and internal functions.
667
668Special thanks to Google's Open Source Security Subsidies program for
669sponsoring much of the work on this release!
670
671Ongoing work on libxml2 relies on funding. For a list of important open
672issues see <https://gitlab.gnome.org/GNOME/libxml2/-/issues/507>
673
674### Security
675
676- Fix use-after-free in xmlParseContentInternal() (David Kilzer)
677- xmllint: Fix use-after-free with --maxmem
678- parser: Fix OOB read when formatting error message
679- entities: Rework entity amplification checks
680
681### Regressions
682
683- parser: Fix regression in xmlParserNodeInfo accounting
684
685### Bug fixes
686
687- Fix memory errors in code handling malloc failures
688- encoding: Fix error code in asciiToUTF8
689- xpath: number('-') should return NaN
690- xmlParseStartTag2() contains typo when checking for default definitions for
691  an attribute in a namespace (David Kilzer)
692- uri: Fix handling of port numbers
693- error: Make sure that error messages are valid UTF-8
694- xinclude: Fix nested includes
695
696### Improvements
697
698- xmllint: Validate --maxmem integer option
699- xmlValidatePopElement() can return invalid value (-1) (David Kilzer)
700- parser: Rework EBCDIC code page detection
701- parser: Limit name length in xmlParseEncName
702- parser: Rework shrinking of input buffers
703- html: Rely on CUR_CHAR to grow the input buffer
704- parser: Rely on CUR_CHAR/NEXT to grow the input buffer
705- valid: Make xmlValidateElement non-recursive
706- html: Fix quadratic behavior in htmlParseTryOrFinish
707- xmllint: Fix memory leak with --pattern --stream
708- parser: Stop calling xmlParserInputShrink
709- html: Impose some length limits
710- valid: Allow xmlFreeValidCtxt(NULL)
711- parser: Stop calling xmlParserInputGrow
712- xinclude: Fix quadratic behavior in xmlXIncludeLoadTxt
713- xinclude: Abort immediately if max depth was exceeded
714- xpath: Only report the first error
715- error: Don't move past current position
716- error: Limit number of parser errors
717- parser: Lower entity nesting limit with XML_PARSE_HUGE
718- parser: Don't increase depth twice when parsing internal entities
719- parser: Improve detection of entity loops
720- parser: Only report a single entity error
721- libxml.h: Remove dubious definition of LIBXML_STATIC
722- html: Improve parsing of nested lists
723- memory: Don't use locks in xmlMemUsed
724- encoding: Remove unused variable xmlDefaultCharEncodingHandler
725- Rework initialization code
726- Add .editorconfig
727- parser: Merge misc, prolog and epilog cases in push parser
728- parser: Fix 'consumed' accounting when switching encodings
729- html: Fix check for end of comment in push parser
730- parser: Fix push parser with 1-3 byte initial chunk
731- parser: Rewrite push parser boundary checks
732- reader: Switch to xmlParserInputBufferCreateMem
733- html: Don't escape ASCII chars in href attributes
734- io: Don't shrink memory input buffers
735- parser: Don't call xmlSHRINK from push parser
736- parser: Ignore cdata argument in xmlParseCharData
737- parser: Rework push parser parser progress checks
738- io: Fix a few integer overflows in I/O statistics
739- io: Rework xmlParserInputBufferGrow with encodings
740- io: Remove xmlInputReadCallbackNop
741- io: Check for memory buffer early in xmlParserInputGrow
742- parser: Fix error message in xmlParseCommentComplex
743- Bypass proxy in nanoHTTP for hosts in "no_proxy" (Markus Jörg)
744- schemas: Fix infinite loop in xmlSchemaCheckElemSubstGroup
745- threads: Remove check for pthread_equal
746- xinclude: Rework XInclude cache
747- xinclude: Remove inefficient refcounting scheme
748- xmllint: Improve handling of empty XPath node sets
749- parser: Fix potential memory leak in xmlParseAttValueInternal
750- error: Don't use initGenericErrorDefaultFunc
751- xpath: Lower XPath recursion limit on Windows
752- Stop including sys/types.h
753- Don't define WIN32 macro
754- Make xmlNewSAXParserCtx take a const sax handler
755- Consolidate private header files
756- Remove internal macros from parserInternals.h
757- Move some HTML functions to correct header file
758- xmllint: Stop calling xmlSAXDefaultVersion
759- Introduce xmlNewSAXParserCtxt and htmlNewSAXParserCtxt
760- Don't mess with parser options in htmlParseDocument
761- Remove useless call to htmlDefaultSAXHandlerInit
762- Remove htmlDefaultSAXHandler from non-SAX1 build
763- Don't initialize SAX handler in htmlReadMemory
764- Fix htmlReadMemory mixing up XML and HTML functions
765- Don't use default SAX handler to report unrelated errors
766- Create stream with buffer in xmlNewStringInputStream
767- xmlcatalog: Fix memory leaks
768
769### Code quality
770
771- xzlib: Fix implicit sign change in xz_open
772- parser: Simplify calculation of available buffer space
773- parser: Use size_t when subtracting input buffer pointers
774- parser: Check for integer overflow when updating checkIndex
775- xpath: Fix harmless integer overflow in xmlXPathTranslateFunction
776- schematron: Use logical and
777- relaxng: Remove useless if statement
778- schemas: Remove useless if statement
779- pattern: Merge identical branches
780- regexp: Add sanity check in xmlRegCalloc2
781- regexp: Simplify xmlRegAtomPush
782- encoding: Cast toupper argument to unsigned char
783- uri: Add explicit cast in xmlSaveUri
784- buf: Fix return value of xmlBufGetInputBase
785- parser: Fix integer overflow of input ID
786- parser: Remove useless ent->etype test in xmlParseReference
787- parser: Remove useless ent->children tests in xmlParseReference
788- xmlmemory.c: Remove xmlMemContentShow
789- libxml.h: Add comments and indentation
790- libxml.h: Don't include stdio.h
791- xmlexports.h: Disable docs for internal macro XMLPUBLIC
792- parser: Simplify xmlParseConditionalSections
793- io: Rearrange code in xmlSwitchInputEncodingInt
794- warnings: Fix -Wstrict-prototypes warning
795- warnings: Remove set-but-unused variables
796- Fix compiler warnings in SAX2.c
797- Fix unused variable warning in python/types.c
798- Fix compiler warning in examples
799- Fix compiler warnings in fuzzing code
800- Remove unused code in nanohttp.c
801- Remove or annotate char casts
802- Don't use sizeof(xmlChar) or sizeof(char)
803- Remove explicit integer casts
804
805### Deprecations
806
807- parser: Deprecate more internal functions
808- parser: Deprecate some parser input functions
809- parser: Deprecate xmlString*DecodeEntities
810- threads: Deprecate some internal functions
811- buf: Deprecate static/immutable buffers
812- Deprecate internal parser functions
813- Deprecate old HTML SAX API
814- Generate deprecation warnings for old SAX API
815- Mark more functions setting globals as deprecated
816- Mark more parser functions as deprecated
817- Mark most SAX1 functions as deprecated
818- Deprecate some global variables
819
820### Portability
821
822- autoconf: Warn about outdated C compilers
823- win32: Remove broken libxml2.def.src
824- Remove symbols from version script
825- catalog.c: Silence a cast warning on VS 2022 (Lukáš Tyrychtr)
826- libxml.h: Remove ancient LynxOS setup
827- Use python3 not python (Ross Burton)
828- xstc/fixup-tests.py: port to Python 3 (Ross Burton)
829- xstc/fixup-tests.py: unify whitespace (Ross Burton)
830- Remove hacky heuristic from b2dc5675 (Alex Richardson)
831- Avoid creating an out-of-bounds pointer by rewriting a check
832  (Alex Richardson)
833- Hide internal functions
834- Correctly relocate internal pointers after realloc() (Alex Richardson)
835- Visual Studio builds: Allow silencing deprecation warnings (Chun-wei Fan)
836- Visual Studio: Define XML_DEPRECATED (Chun-wei Fan)
837- xmllint: Include <io.h> on Windows
838- warnings: Work around MSVC bug
839- sources: Silence C4013 warnings on Visual Studio (Chun-wei Fan)
840- python/setup.py.in: Improve Windows import patching (Chun-wei Fan)
841- python: Create .pyd on Windows
842- Fix Python build on Windows
843- Fix Windows compiler warnings in python/types.c
844- Fix libxml_PyFileGet
845- Remove BeOS support
846- Fix libxml_PyFileGet with stdout on macOS
847- Migrate from PyEval_ to PyObject_
848- Port build_glob.py to Python 3
849- Port genChRanges.py to Python 3
850- xmlexports.h: Remove LIBXML_FASTCALL optimization
851- Remove XMLCALL and XMLCDECL macros from public headers
852- Remove XMLDECL macro from .c files
853
854### Build systems
855
856- cmake: Link against `dl` and `dld` only when `LIBXML2_WITH_MODULES` is
857  enabled (Alexander Kutelev)
858- autotools: Fix make distcheck
859- Remove RPM build, Makefile.tests, README.tests
860- libxml.m4: deprecate AM_PATH_XML2, wrap PKG_CHECK_MODULES instead
861  (Ross Burton)
862- libxml.m4: fix -Wstrict-prototypes (Sam James)
863- cmake: Build static library with -DLIBXML_STATIC
864- autotools: Don't use version script on Windows
865- autotools: Fix winsock detection
866- autotools: Only add network libraries if HTTP/FTP enabled
867- autotools: Disable parallel Python build
868- python: Don't output missing generators during build
869- build: Remove check for broken ss_family
870- http: Simplify IPv6 checks
871- autotools: Fix network checks on Windows
872- Fix detection of GNU libiconv
873- cmake: Fix Python installation
874- cmake: Don't check for Python 2
875- configure.ac: Also check for MSYS host
876- Improve network library detection
877- Detect ws2_32 with AC_SEARCH_LIBS
878- Rework network configure checks
879- Remove arg cast configure checks
880- Fix dlopen check
881- Remove HAVE_WIN32_THREADS configuration flag
882- Rework dlopen and pthread detection
883- Fix test in configure.ac
884- cmake: Enable GCC compiler warnings
885- Always link with -no-undefined
886- Use AM_CFLAGS and AM_LDFLAGS consistently
887- Remove -Wredundant-decls
888- Call AC_CHECK_* with multiple arguments
889- configure.ac: Remove checks for unused programs
890- Rework library detection in configure.ac
891- Rearrange configure.ac
892- Consolidate zlib and lzma detection
893- Remove "runtime debugging"
894- Consolidate simple API modules in configure.ac
895- Fix dependency resolution in configure.ac
896- Fix --with-valid --without-regexps build
897- Fix --with-schemas --without-xpath build
898- Don't build unneeded .c source files
899- Move xmlIsXHTML to tree.c
900- Cleanup distribution settings in Makefile.am
901- Also clean *.pyc files for Python 2
902- Don't distribute libxml2.spec
903
904### Tests
905
906- testchar: Add test for memory pull parser with encoding
907- fuzz: Also test init function of URI fuzzer
908- fuzz: Separate fuzzer for DTD validation
909- gitlab-ci: Enable all "integer" sanitizers
910- fuzz: Inject random malloc failures
911- fuzz: Support variable integer sizes in fuzz data
912- fuzz: Fix duplicate detection in fuzzEntityRecorder
913- fuzz: Set filename in xmlFuzzEntityLoader
914- fuzz: Allow xmlFuzzReadString(NULL)
915- fuzz: Fix Makefile dependencies
916- fuzz: Add test/recurse to seed corpus
917- fuzz: Add separate XInclude fuzzer
918- runsuite: Some errors are expected
919- testrecurse: Test entity expansion stats
920- testapi.c: Initialize catalog early
921- gentest.py: Fix memory leak in API tests
922- tests: Enable "runsuite" test
923- python/tests/reader2: use absolute paths everywhere (Ross Burton)
924- python/tests/reader2: always exit(1) if a test fails (Ross Burton)
925- testModule: exit if the module can't be opened (Ross Burton)
926- CI: disable modules in gcc:static build (Ross Burton)
927- CI: fix CI on MinGW builds (Ross Burton)
928- python: Fix memory leak checks
929- tests: Check that xmlInitParser doesn't allocate memory
930- tests: Fix use-after-free in Python tests
931- tests: Remove unneeded #includes
932- gitlab-ci: Make Test-Msvc exit if ctest fails
933- gitlab-ci: Treat compiler warnings as errors on MSVC
934- test: Add test for push parser boundaries
935- gitlab-ci: Upgrade image to Ubuntu 22.10, reenable MSan
936- gitlab-ci: Reenable LeakSanitizer
937- gitlab-ci: Fix llvm-symbolizer
938- xinclude: Don't create result doc for test with errors
939- xinclude: Also test error messages
940- gitlab-ci: Allow cast-align warnings from clang
941- gitlab-ci: Fix tar invocation
942- gitlab-ci: Move MSVC test to separate script
943- gitlab-ci: Fix SUFFIX, remove MINGW_PATH
944- gitlab-ci: Consolidate CMake test scripts
945- gitlab-ci: Only install MinGW autotools if needed
946- gitlab-ci: Only install cmake MinGW package if needed
947- gitlab-ci: Install 7-Zip using the .msi
948- Use $MSYSTEM and 'bash -lc' in MinGW CI
949- Add CI job for MinGW/Autotools
950- Consolidate CI scripts
951- Allow empty MINGW_PACKAGE_PREFIX
952- Move Dockerfile to .gitlab-ci directory
953- testapi: Disable on Windows for now
954- Disable fuzzer tests if glob.h wasn't found
955- Move automata test to runtest.c
956- Fix testapi when building --without-sax1
957
958# Documentation
959
960- doc: Remove ancient files
961- Remove ancient TODOs
962- html: Fix htmlInitAutoClose documentation
963- doc: Mention new location of XML catalog as breaking change
964- doc: Mention potentially breaking changes in NEWS
965- doc: Remove xmlDllMain from documentation and version script
966- doc: Mention ${sysconfdir} in man pages
967- doc: Document xmlcatalog --convert
968- doc: Document xmllint --nodict and --pedantic
969- doc: Fix indentation in source XML files
970- xmllint: Document --quiet option
971- Improve cross-references in API docs
972- Improve documentation of globals
973- Fix documentation parser
974- Support comments for global variables in documentation
975- Fix update call in apibuild.py
976- Don't index anything in DOC_DISABLE sections
977- Fix warnings from apibuild.py
978- Start with documentation for maintainers
979
980
981v2.10.4: Apr 11 2023
982
983### Security
984
985- [CVE-2023-29469] Hashing of empty dict strings isn't deterministic
986- [CVE-2023-28484] Fix null deref in xmlSchemaFixupComplexType
987- schemas: Fix null-pointer-deref in xmlSchemaCheckCOSSTDerivedOK
988
989### Regressions
990
991- SAX2: Ignore namespaces in HTML documents
992- io: Fix "buffer full" error with certain buffer sizes
993
994
995v2.10.3: Oct 14 2022
996
997### Security
998
999- [CVE-2022-40304] Fix dict corruption caused by entity reference cycles
1000- [CVE-2022-40303] Fix integer overflows with XML_PARSE_HUGE
1001- Fix overflow check in SAX2.c
1002
1003### Portability
1004
1005- win32: Fix build with VS2013
1006
1007### Build system
1008
1009- cmake: Set SOVERSION
1010
1011
1012v2.10.2: Aug 29 2022
1013
1014### Improvements
1015
1016- Remove set-but-unused variable in xmlXPathScanName
1017- Silence -Warray-bounds warning
1018
1019### Build system
1020
1021- build: require automake-1.16.3 or later (Xi Ruoyao)
1022- Remove generated files from distribution
1023
1024### Test suite
1025
1026- Don't create missing.xml when running testapi
1027
1028
1029v2.10.1: Aug 25 2022
1030
1031### Regressions
1032
1033- Fix xmlCtxtReadDoc with encoding
1034
1035### Bug fixes
1036
1037- Fix HTML parser with threads and --without-legacy
1038
1039### Build system
1040
1041- Fix build with Python 3.10
1042- cmake: Disable version script on macOS
1043- Remove Makefile rule to build testapi.c
1044
1045### Documentation
1046
1047- Switch back to HTML output for API documentation
1048- Port doc/examples/index.py to Python 3
1049- Fix order of exports in libxml2-api.xml
1050- Remove libxml2-refs.xml
1051
1052
1053v2.10.0: Aug 17 2022
1054
1055### Breaking changes
1056
1057The Docbook parser module and all related symbols habe been removed completely.
1058This was experimental code which never worked and generated a deprecation
1059warning for 15+ years. The library's soname wasn't changed in order to allow
1060seamless upgrades to later versions. If this concerns you, consider bumping
1061soname yourself.
1062
1063Some other modules are now disabled by default and will eventually be removed
1064completely:
1065
1066- Support for XPointer locations (ranges and points): This was based on
1067  a W3C specification which never got beyond Working Draft status. To my
1068  knowledge, there's no software supporting this spec which is still
1069  maintained. You now have to enable this code by passing the
1070  `--with-xptr-locs` configuration option. Be warned that this part of
1071  the code base is buggy and had many security issues in the past.
1072
1073- Support for the built-in FTP client (`--with-ftp`).
1074
1075- Support for "legacy" functions (`--with-legacy`).
1076
1077If you're concerned about ABI stability and haven't disabled these modules
1078already, add the following configuration options or bump soname yourself:
1079
1080    --with-ftp
1081    --with-legacy
1082    --with-xptr-locs
1083
1084Several functions of the public API were deprecated. Most of them should be
1085completely unused and will generate a deprecation warning now.
1086
1087The autoconf build now uses the sysconfdir variable for the location of
1088the default catalog file. The path changed from hardcoded /etc/xml/catalog
1089to ${sysconfdir}/xml/catalog. The sysconfdir variable defaults to
1090${prefix}/etc, prefix defaults to /usr/local, so without other options
1091the path becomes /usr/local/etc/xml/catalog. If you want the old behavior,
1092configure with
1093
1094    --sysconfdir=/etc
1095
1096### Security
1097
1098- [CVE-2022-2309] Reset nsNr in xmlCtxtReset
1099- Reserve byte for NUL terminator and report errors consistently in xmlBuf and
1100  xmlBuffer (David Kilzer)
1101- Fix missing NUL terminators in xmlBuf and xmlBuffer functions (David Kilzer)
1102- Fix integer overflow in xmlBufferDump() (David Kilzer)
1103- xmlBufAvail() should return length without including a byte for NUL
1104  terminator (David Kilzer)
1105- Fix ownership of xmlNodePtr & xmlAttrPtr fields in xmlSetTreeDoc() (David
1106  Kilzer)
1107- Use xmlNewDocText in xmlXIncludeCopyRange
1108- Fix use-after-free bugs when calling xmlTextReaderClose() before
1109  xmlFreeTextReader() on post-validating parser (David Kilzer)
1110- Use UPDATE_COMPAT() consistently in buf.c (David Kilzer)
1111- fix: xmlXPathParserContext could be double-delete in  OOM case. (jinsub ahn)
1112
1113### Removals and deprecations
1114
1115- Disable XPointer location support by default
1116- Remove outdated xml2Conf.sh
1117- Deprecate module init and cleanup functions
1118- Remove obsolete XML Software Autoupdate (XSA) file
1119- Remove DOCBparser
1120- Remove obsolete Python test framework
1121- Remove broken VxWorks support
1122- Remove broken Mac OS 9 support
1123- Remove broken bakefile support
1124- Remove broken Visual Studio 2010 support
1125- Remove broken Windows CE support
1126- Deprecate IDREF-related functions in valid.h
1127- Deprecate legacy functions
1128- Disable legacy support by default
1129- Deprecate all functions in nanoftp.h
1130- Disable FTP support by default
1131- Add XML_DEPRECATED macro
1132- Remove elfgcchack.h
1133
1134### Regressions
1135
1136- Skip incorrectly opened HTML comments
1137- Restore behavior of htmlDocContentDumpFormatOutput() (David Kilzer)
1138
1139### Bug fixes
1140
1141- Fix memory leak with invalid XSD
1142- Make XPath depth check work with recursive invocations
1143- Fix memory leak in xmlLoadEntityContent error path
1144- Avoid double-free if malloc fails in inputPush
1145- Properly fold whitespace around the QName value when validating an XSD
1146  schema. (Damjan Jovanovic)
1147- Add whitespace folding for some atomic data types that it's missing on.
1148  (Damjan Jovanovic)
1149- Don't add IDs containing unexpanded entity references
1150
1151### Improvements
1152
1153- Avoid calling xmlSetTreeDoc
1154- Simplify xmlFreeNode
1155- Don't reset nsDef when changing node content
1156- Fix unintended fall-through in xmlNodeAddContentLen
1157- Remove unused xmlBuf functions (David Kilzer)
1158- Implement xpath1() XPointer scheme
1159- Add configuration flag for XPointer locations support
1160- Fix compiler warnings in Python code
1161- Mark more static data as `const` (David Kilzer)
1162- Make xmlStaticCopyNode non-recursive
1163- Clean up encoding switching code
1164- Simplify recursive pthread mutex
1165- Use non-recursive mutex in dict.c
1166- Fix parser progress checks
1167- Avoid arithmetic on freed pointers
1168- Improve buffer allocation scheme
1169- Remove unneeded #includes
1170- Add support for some non-standard escapes in regular expressions. (Damjan
1171  Jovanovic)
1172- htmlParseComment: handle abruptly-closed comments (Mike Dalessio)
1173- Add let variable tag support (Oliver Diehl)
1174- Add value-of tag support (Oliver Diehl)
1175- Remove useless call to xmlRelaxNGCleanupTypes
1176- Don't include ICU headers in public headers
1177- Update `xmlStrlen()` to use POSIX / ISO C `strlen()` (Mike Dalessio)
1178- Fix unused variable warnings with disabled features
1179- Only warn on invalid redeclarations of predefined entities
1180- Remove unneeded code in xmlreader.c
1181- Rework validation context flags
1182
1183### Portability
1184
1185- Use NAN/INFINITY if available to init XPath NaN/Inf (Sergey Kosukhin)
1186- Fix Python tests on macOS
1187- Fix xmlCleanupThreads on Windows
1188- Fix reinitialization of library on Windows
1189- Don't mix declarations and code in runtest.c
1190- Use portable python shebangs (David Seifert)
1191- Use critical sections as mutex on Windows
1192- Don't set HAVE_WIN32_THREADS in win32config.h
1193- Use stdint.h with newer MSVC
1194- Remove cruft from win32config.h
1195- Remove isinf/isnan emulation in win32config.h
1196- Always fopen files with "rb"
1197- Remove __DJGPP__ checks
1198- Remove useless __CYGWIN__ checks
1199
1200### Build system
1201
1202- Don't autogenerate doc/examples/Makefile.am
1203- cmake: Install libxml.m4 on UNIX-like platforms (Daniel E)
1204- cmake: Use symbol versioning on UNIX-like platforms (Daniel E)
1205- Port genUnicode.py to Python 3
1206- Port gentest.py to Python 3
1207- cmake: Fix build without thread support
1208- cmake: Install documentation in CMAKE_INSTALL_DOCDIR
1209- cmake: Remove non needed files in docs dir (Daniel E)
1210- configure: move XML_PRIVATE_LIBS after WIN32_EXTRA_LIBADD is set
1211  (Christopher Degawa)
1212- Move local Autoconf macros into m4 directory
1213- Use XML_PRIVATE_LIBS in libxml2_la_LIBADD
1214- Update libxml-2.0-uninstalled.pc.in
1215- Remove LIBS from XML_PRIVATE_LIBS
1216- Add WIN32_EXTRA_LIBADD to XML_PRIVATE_LIBS
1217- Don't overlink executables
1218- cmake: Adjust paths for UNIX or UNIX-like target systems (Daniel Engberg)
1219- build: Make use of variables in libxml's pkg-config file (Daniel Engberg)
1220- Avoid obsolescent `test -a` constructs (David Seifert)
1221- Move AM_MAINTAINER_MODE to AM section
1222- configure.ac: make AM_SILENT_RULES([yes]) unconditional (David Seifert)
1223- Streamline documentation installation
1224- Don't try to recreate COPYING symlink
1225- Detect libm using libtool's macros (David Seifert)
1226- configure.ac: disable static libraries by default (David Seifert)
1227- python/Makefile.am: nest python docs in $(docdir) (David Seifert)
1228- python/Makefile.am: rely on global AM_INIT_AUTOMAKE (David Seifert)
1229- Makefile.am: install examples more idiomatically (David Seifert)
1230- configure.ac: remove useless AC_SUBST (David Seifert)
1231- Respect `--sysconfdir` in source files (David Seifert)
1232- Ignore configure backup file created by recent autoreconf too (Vadim Zeitlin)
1233- Only install *.html and *.c example files
1234- Remove --with-html-dir option
1235- Rework documentation build system
1236- Remove old website
1237- Use AM_PATH_PYTHON/PKG_CHECK_MODULES for python bindings (David Seifert)
1238- Update genChRanges.py
1239- Update build_glob.py
1240- Remove ICONV_CONST test
1241- Remove obsolete AC_HEADER checks
1242- Don't check for standard C89 library functions
1243- Don't check for standard C89 headers
1244- Remove special configuration for certain maintainers
1245
1246### Test suite, CI
1247
1248- Disable network in API tests
1249- testapi: remove leading slash from "/missing.xml" (Mike Gilbert)
1250- Build Autotools CI tests out of source tree (VPATH)
1251- Add --with-minimum build to CI tests
1252- Fix warnings when testing --with-minimum build
1253- cmake: Run all tests when threads are disabled
1254- Also build CI tests with -Werror
1255- Move doc/examples tests to new test suite
1256- Simplify 'make check' targets
1257- Fix schemas and relaxng tests
1258- Remove unused result files
1259- Allow missing result files in runtest
1260- Move regexp tests to runtest
1261- Move SVG tests to runtest.c
1262- Move testModule to new test suite
1263- Move testThreads to new test suite
1264- Remove major parts of old test suite
1265- Make testchar return an error on failure (Tony Tascioglu)
1266- Add CI job for static build
1267- python/tests: open() relative to test scripts (David Seifert)
1268- Port some test scripts to Python 3
1269
1270### Documentation
1271
1272- Improve documentation of tree manipulation API
1273- Update xml2-config man page
1274- Consolidate man pages
1275- Rename xmlcatalog_man.xml
1276- Make examples a standalone HTML page
1277- Fix documentation in entities.c
1278- Add note about optimization flags
1279
1280
1281v2.9.14: May 02 2022:
1282   - Security:
1283  [CVE-2022-29824] Integer overflow in xmlBuf and xmlBuffer
1284  Fix potential double-free in xmlXPtrStringRangeFunction
1285  Fix memory leak in xmlFindCharEncodingHandler
1286  Normalize XPath strings in-place
1287  Prevent integer-overflow in htmlSkipBlankChars() and xmlSkipBlankChars()
1288    (David Kilzer)
1289  Fix leak of xmlElementContent (David Kilzer)
1290
1291   - Bug fixes:
1292  Fix parsing of subtracted regex character classes
1293  Fix recursion check in xinclude.c
1294  Reset last error in xmlCleanupGlobals
1295  Fix certain combinations of regex range quantifiers
1296  Fix range quantifier on subregex
1297
1298   - Improvements:
1299  Fix recovery from invalid HTML start tags
1300
1301   - Build system, portability:
1302  Define LFS macros before including system headers
1303  Initialize XPath floating-point globals
1304  configure: check for icu DEFS (James Hilliard)
1305  configure.ac: produce tar.xz only (GNOME policy) (David Seifert)
1306  CMakeLists.txt: Fix LIBXML_VERSION_NUMBER
1307  Fix build with older Python versions
1308  Fix --without-valid build
1309
1310
1311v2.9.13: Feb 19 2022:
1312   - Security:
1313  [CVE-2022-23308] Use-after-free of ID and IDREF attributes
1314  (Thanks to Shinji Sato for the report)
1315  Use-after-free in xmlXIncludeCopyRange (David Kilzer)
1316  Fix Null-deref-in-xmlSchemaGetComponentTargetNs (huangduirong)
1317  Fix memory leak in xmlXPathCompNodeTest
1318  Fix null pointer deref in xmlStringGetNodeList
1319  Fix several memory leaks found by Coverity (David King)
1320
1321   - Fixed regressions:
1322  Fix regression in RelaxNG pattern matching
1323  Properly handle nested documents in xmlFreeNode
1324  Fix regression with PEs in external DTD
1325  Fix random dropping of characters on dumping ASCII encoded XML (Mohammad Razavi)
1326  Revert "Make schema validation fail with multiple top-level elements"
1327  Fix regression when parsing invalid HTML tags in push mode
1328  Fix regression parsing public IDs literals in HTML
1329  Fix buffering in xmlOutputBufferWrite
1330  Fix whitespace when serializing empty HTML documents
1331  Fix XPath recursion limit
1332  Fix regression in xmlNodeDumpOutputInternal
1333  Work around lxml API abuse
1334
1335   - Bug fixes:
1336  Fix xmlSetTreeDoc with entity references
1337  Fix double counting of CRLF in comments
1338  Make sure to grow input buffer in xmlParseMisc
1339  Don't ignore xmllint options after "-"
1340  Don't normalize namespace URIs in XPointer xmlns() scheme
1341  Fix handling of XSD with empty namespace
1342  Also register HTML document nodes
1343  Make xmllint return an error if arguments are missing
1344  Fix handling of ctxt->base in xmlXPtrEvalXPtrPart
1345  Fix xmllint --maxmem
1346  Fix htmlReadFd, which was using a mix of xml and html context functions (Finn Barber)
1347  Move current position before possible calling of ctxt->sax->characters (Yulin Li)
1348  Fix parse failure when 4-byte character in UTF-16 BE is split across a chunk (David Kilzer)
1349  Patch to forbid epsilon-reduction of final states (Arne Becker)
1350  Avoid segfault at exit when using custom memory functions (Mike Dalessio)
1351
1352   - Tests, code quality, fuzzing:
1353  Remove .travis.yml
1354  Make xmlFuzzReadString return a zero size in error case
1355  Fix unused function warning in testapi.c
1356  Update NewsML DTD in test suite
1357  Add more checks for malloc failures in xmllint.c
1358  Avoid potential integer overflow in xmlstring.c
1359  Run CI tests with UBSan implicit-conversion checks
1360  Fix casting of line numbers in SAX2.c
1361  Fix integer conversion warnings in hash.c
1362  Add explicit casts in runtest.c
1363  Fix integer conversion warning in xmlIconvWrapper
1364  Add suffix to unsigned constant in xmlmemory.c
1365  Add explicit casts in testchar.c
1366  Fix integer conversion warnings in xmlstring.c
1367  Add explicit cast in xmlURIUnescapeString
1368  Remove unused variable in xmlCharEncOutFunc (David King)
1369
1370   - Build system, portability:
1371  Remove xmlwin32version.h
1372  Fix fuzzer test with VPATH build
1373  Support custom prefix when installing Python module
1374  Remove Makefile.win
1375  Remove CVS and SVN-related code
1376  Port python 3.x module to Windows and improve distutils (Chun-wei Fan)
1377  Correctly install the HTML examples into their subdirectory (Mattia Rizzolo)
1378  Refactor the settings of $docdir (Mattia Rizzolo)
1379  Remove unused configure checks (Ben Boeckel)
1380  python/Makefile.am: use *_LIBADD, not *_LDFLAGS for LIBS (Sam James)
1381  Fix check for libtool in autogen.sh
1382  Use version in configure.ac for CMake (Timothy Lyanguzov)
1383  Add CMake alias targets for embedded projects (Markus Rickert)
1384
1385   - Documentation:
1386  Remove SVN keyword anchors
1387  Rework README
1388  Remove README.cvs-commits
1389  Remove old ChangeLog
1390  Update hyperlinks
1391  Remove README.docs
1392  Remove MAINTAINERS
1393  Remove xmltutorial.pdf
1394  Upload documentation to GitLab pages
1395  Document how to escape XML_CATALOG_FILES
1396  Fix libxml2.doap
1397  Update URL for libxml++ C++ binding (Kjell Ahlstedt)
1398  Generate devhelp2 index file (Emmanuele Bassi)
1399  Mention XML_CATALOG_FILES is space-separated (Jan Tojnar)
1400  Add documentaiton for xmllint exit code 10 (Rainer Canavan)
1401  Fix some validation errors in the FAQ (David King)
1402  Add instructions on how to use CMake to compile libxml (Markus Rickert)
1403
1404
1405
1406v2.9.12: May 13 2021:
1407   - Build system:
1408  Add fuzz.h and seed/regexp to EXTRA_DIST
1409
1410
1411
1412v2.9.11: May 13 2021:
1413   - Security:
1414  Patch for security issue CVE-2021-3541 (Daniel Veillard)
1415
1416   - Documentation:
1417  Clarify xmlNewDocProp documentation (Nick Wellnhofer)
1418
1419   - Portability:
1420  CMake: Only add postfixes if MSVC (Christopher Degawa),
1421  Fix XPath NaN/Inf for older GCC versions (Nick Wellnhofer),
1422  Use CMake PROJECT_VERSION (Markus Rickert),
1423  Fix warnings in libxml.m4 with autoconf 2.70+. (Simon Josefsson),
1424  Add CI for CMake on MSVC (Markus Rickert),
1425  Update minimum required CMake version (Markus Rickert),
1426  Add variables for configured options to CMake config files (Markus Rickert),
1427  Check if variables exist when defining targets (Markus Rickert),
1428  Check if target exists when reading target properties (Markus Rickert),
1429  Add xmlcatalog target and definition to config files (Markus Rickert),
1430  Remove include directories for link-only dependencies (Markus Rickert),
1431  Fix ICU build in CMake (Markus Rickert),
1432  Configure pkgconfig, xml2-config, and xml2Conf.sh file (Markus Rickert),
1433  Update CMake config files (Markus Rickert),
1434  Add xmlcatalog and xmllint to CMake export (Markus Rickert),
1435  Simplify xmlexports.h (Nick Wellnhofer),
1436  Require dependencies based on enabled CMake options (Markus Rickert),
1437  Use NAMELINK_COMPONENT in CMake install (Markus Rickert),
1438  Add CMake files to EXTRA_DIST (Markus Rickert),
1439  Add missing compile definition for static builds to CMake (Markus Rickert),
1440  Add CI for CMake on Linux and MinGW (Markus Rickert),
1441  Fix variable name in win32/configure.js (Nick Wellnhofer),
1442  Fix version parsing in win32/configure.js (Nick Wellnhofer),
1443  Fix autotools warnings (Nick Wellnhofer),
1444  Update config.h.cmake.in (Markus Rickert),
1445  win32: allow passing *FLAGS on command line (Michael Stahl),
1446  Configure file xmlwin32version.h.in on MSVC (Markus Rickert),
1447  List headers individually (Markus Rickert),
1448  Add CMake build files (Markus Rickert),
1449  Parenthesize Py<type>_Check() in ifs (Miro Hrončok),
1450  Minor fixes to configure.js (Nick Wellnhofer)
1451
1452   - Bug Fixes:
1453  Fix null deref in legacy SAX1 parser (Nick Wellnhofer),
1454  Fix handling of unexpected EOF in xmlParseContent (Nick Wellnhofer),
1455  Fix line numbers in error messages for mismatched tags (Nick Wellnhofer),
1456  Fix htmlTagLookup (Nick Wellnhofer),
1457  Propagate error in xmlParseElementChildrenContentDeclPriv (Nick Wellnhofer),
1458  Fix user-after-free with `xmllint --xinclude --dropdtd` (Nick Wellnhofer),
1459  Fix dangling pointer with `xmllint --dropdtd` (Nick Wellnhofer),
1460  Validate UTF8 in xmlEncodeEntities (Joel Hockey),
1461  Fix use-after-free with `xmllint --html --push` (Nick Wellnhofer),
1462  Allow FP division by zero in xmlXPathInit (Nick Wellnhofer),
1463  Fix xmlGetNodePath with invalid node types (Nick Wellnhofer),
1464  Fix exponential behavior with recursive entities (Nick Wellnhofer),
1465  Fix quadratic behavior when looking up xml:* attributes (Nick Wellnhofer),
1466  Fix slow parsing of HTML with encoding errors (Nick Wellnhofer),
1467  Fix null deref introduced with previous commit (Nick Wellnhofer),
1468  Check for invalid redeclarations of predefined entities (Nick Wellnhofer),
1469  Add the copy of type from original xmlDoc in xmlCopyDoc() (SVGAnimate),
1470  parser.c: shrink the input buffer when appropriate (Mike Dalessio),
1471  Fix infinite loop in HTML parser introduced with recent commits (Nick Wellnhofer),
1472  Fix quadratic runtime when parsing CDATA sections (Nick Wellnhofer),
1473  Fix timeout when handling recursive entities (Nick Wellnhofer),
1474  Fix memory leak in xmlParseElementMixedContentDecl (Nick Wellnhofer),
1475  Fix null deref in xmlStringGetNodeList (Nick Wellnhofer),
1476  use new htmlParseLookupCommentEnd to find comment ends (Mike Dalessio),
1477  htmlParseComment: treat `--!>` as if it closed the comment (Mike Dalessio),
1478  Fix integer overflow in xmlSchemaGetParticleTotalRangeMin (Nick Wellnhofer),
1479  encoding: fix memleak in xmlRegisterCharEncodingHandler() (Xiaoming Ni),
1480  xmlschemastypes.c: xmlSchemaGetFacetValueAsULong add, check "facet->val" (Xiaoming Ni),
1481  Fix null pointer deref in xmlXPtrRangeInsideFunction (Nick Wellnhofer),
1482  Fix quadratic runtime in HTML push parser with null bytes (Nick Wellnhofer),
1483  Avoid quadratic checking of identity-constraints (Michael Matz),
1484  Fix building with ICU 68. (Frederik Seiffert),
1485  Convert python/libxml.c to PY_SSIZE_T_CLEAN (Victor Stinner),
1486  Fix xmlURIEscape memory leaks. (Elliott Hughes),
1487  Avoid call stack overflow with XML reader and recursive XIncludes (Nick Wellnhofer),
1488  Fix caret in regexp character group (Nick Wellnhofer),
1489  parser.c: xmlParseCharData peek behavior fixed wrt newlines (Mike Dalessio),
1490  Fix memory leaks in XPointer string-range function (Nick Wellnhofer),
1491  Fix use-after-free when XIncluding text from Reader (Nick Wellnhofer),
1492  Fix SEGV in xmlSAXParseFileWithData (yanjinjq),
1493  Fix null deref in XPointer expression error path (Nick Wellnhofer),
1494  Don't call xmlXPathInit directly (Nick Wellnhofer),
1495  Fix cleanup of attributes in XML reader (Nick Wellnhofer),
1496  Fix double free in XML reader with XIncludes (Nick Wellnhofer),
1497  Fix memory leak in xmlXIncludeAddNode error paths (Nick Wellnhofer),
1498  Revert "Fix quadratic runtime in xi:fallback processing" (Nick Wellnhofer),
1499  Fix error reporting with xi:fallback (Nick Wellnhofer),
1500  Fix quadratic runtime in xi:fallback processing (Nick Wellnhofer),
1501  Fix corner case with empty xi:fallback (Nick Wellnhofer),
1502  Fix XInclude regression introduced with recent commit (Nick Wellnhofer),
1503  Fix memory leak in runtest.c (Nick Wellnhofer),
1504  Make "xmllint --push --recovery" work (Nick Wellnhofer),
1505  Revert "Do not URI escape in server side includes" (Nick Wellnhofer),
1506  Fix column number accounting in xmlParse*NameAndCompare (Nick Wellnhofer),
1507  Stop counting nbChars in parser context (Nick Wellnhofer),
1508  Fix out-of-bounds read with 'xmllint --htmlout' (Nick Wellnhofer),
1509  Fix exponential runtime and memory in xi:fallback processing (Nick Wellnhofer),
1510  Don't process siblings of root in xmlXIncludeProcess (Nick Wellnhofer),
1511  Don't recurse into xi:include children in xmlXIncludeDoProcess (Nick Wellnhofer),
1512  Fix memory leak in xmlXIncludeIncludeNode error paths (Nick Wellnhofer),
1513  Check for custom free function in global destructor (Nick Wellnhofer),
1514  Fix integer overflow when comparing schema dates (Nick Wellnhofer),
1515  Fix exponential runtime in xmlFARecurseDeterminism (Nick Wellnhofer),
1516  Don't try to handle namespaces when building HTML documents (Nick Wellnhofer),
1517  Fix several quadratic runtime issues in HTML push parser (Nick Wellnhofer),
1518  Fix quadratic runtime when push parsing HTML start tags (Nick Wellnhofer),
1519  Reset XML parser input before reporting errors (David Kilzer),
1520  Fix quadratic runtime when push parsing HTML entity refs (Nick Wellnhofer),
1521  Fix HTML push parser lookahead (Nick Wellnhofer),
1522  Make htmlCurrentChar always translate U+0000 (Nick Wellnhofer),
1523  Fix UTF-8 decoder in HTML parser (Nick Wellnhofer),
1524  Fix quadratic runtime when parsing HTML script content (Nick Wellnhofer),
1525  Reset HTML parser input before reporting error (Nick Wellnhofer),
1526  Fix more quadratic runtime issues in HTML push parser (Nick Wellnhofer),
1527  Fix regression introduced with 477c7f6a (Nick Wellnhofer),
1528  Fix quadratic runtime in HTML parser (Nick Wellnhofer),
1529  Reset HTML parser input before reporting encoding error (Nick Wellnhofer),
1530  Fix integer overflow in xmlFAParseQuantExact (Nick Wellnhofer),
1531  Fix return value of xmlC14NDocDumpMemory (Nick Wellnhofer),
1532  Don't follow next pointer on documents in xmlXPathRunStreamEval (Nick Wellnhofer),
1533  Fix integer overflow in _xmlSchemaParseGYear (Nick Wellnhofer),
1534  Fix integer overflow when parsing {min,max}Occurs (Nick Wellnhofer),
1535  Fix another memory leak in xmlSchemaValAtomicType (Nick Wellnhofer),
1536  Fix unsigned integer overflow in htmlParseTryOrFinish (Nick Wellnhofer),
1537  Fix integer overflow in htmlParseCharRef (Nick Wellnhofer),
1538  Fix undefined behavior in UTF16LEToUTF8 (Nick Wellnhofer),
1539  Fix return value of xmlCharEncOutput (Nick Wellnhofer),
1540  Never expand parameter entities in text declaration (Nick Wellnhofer),
1541  Fix undefined behavior in xmlXPathTryStreamCompile (Nick Wellnhofer),
1542  Fix use-after-free with validating reader (Nick Wellnhofer),
1543  xmlParseBalancedChunkMemory must not be called with NULL doc (Nick Wellnhofer),
1544  Revert "Fix memory leak in xmlParseBalancedChunkMemoryRecover" (Nick Wellnhofer),
1545  Fix memory leak in xmlXIncludeLoadDoc error path (Nick Wellnhofer),
1546  Make schema validation fail with multiple top-level elements (Nick Wellnhofer),
1547  Call xmlCleanupParser on ELF destruction (Samuel Thibault),
1548  Fix copying of entities in xmlParseReference (Nick Wellnhofer),
1549  Fix memory leak in xmlSchemaValidateStream (Zhipeng Xie),
1550  Fix xmlSchemaGetCanonValue formatting for date and dateTime (Kevin Puetz),
1551  Fix memory leak when shared libxml.dll is unloaded (Kevin Puetz),
1552  Fix potentially-uninitialized critical section in Win32 DLL builds (Kevin Puetz),
1553  Fix integer overflow in xmlBufferResize (Nick Wellnhofer),
1554  Check for overflow when allocating two-dimensional arrays (Nick Wellnhofer),
1555  Remove useless comparisons (Nick Wellnhofer),
1556  Fix overflow check in xmlNodeDump (Nick Wellnhofer),
1557  Fix infinite loop in xmlStringLenDecodeEntities (Zhipeng Xie),
1558  Fix freeing of nested documents (Nick Wellnhofer),
1559  Fix more memory leaks in error paths of XPath parser (Nick Wellnhofer),
1560  Fix memory leaks of encoding handlers in xmlsave.c (Nick Wellnhofer),
1561  Fix xml2-config error code (Nick Wellnhofer),
1562  Fix memory leak in error path of XPath expr parser (Nick Wellnhofer),
1563  Fix overflow handling in xmlBufBackToBuffer (Nick Wellnhofer),
1564  Null pointer handling in catalog.c (raniervf),
1565  xml2-config.in: fix regressions introduced by commit 2f2bf4b2c (Dmitry V. Levin)
1566
1567   - Improvements:
1568  Store per-element parser state in a struct (Nick Wellnhofer),
1569  update for xsd:language type check (PaulHiggs),
1570  Update INSTALL.libxml2 (Nick Wellnhofer),
1571  Fix include order in c14n.h (Nick Wellnhofer),
1572  Fix duplicate xmlStrEqual calls in htmlParseEndTag (Nick Wellnhofer),
1573  Speed up htmlCheckAutoClose (Nick Wellnhofer),
1574  Speed up htmlTagLookup (Nick Wellnhofer),
1575  Stop checking attributes for UTF-8 validity (Nick Wellnhofer),
1576  Reduce some fuzzer timeouts (Nick Wellnhofer),
1577  Only run a few CI tests unless scheduled (Nick Wellnhofer),
1578  Improve fuzzer stability (Nick Wellnhofer),
1579  Check for feature flags in fuzzer tests (Nick Wellnhofer),
1580  Another attempt at improving fuzzer stability (Nick Wellnhofer),
1581  Revert "Improve HTML fuzzer stability" (Nick Wellnhofer),
1582  Add charset names to fuzzing dictionaries (Nick Wellnhofer),
1583  Improve HTML fuzzer stability (Nick Wellnhofer),
1584  Add CI for MSVC x86 (Markus Rickert),
1585  Add a flag to not output anything when xmllint succeeded (hhb),
1586  Speed up HTML fuzzer (Nick Wellnhofer),
1587  Remove unused encoding parameter of HTML output functions (Nick Wellnhofer),
1588  Handle malloc failures in fuzzing code (Nick Wellnhofer),
1589  add test coverage for incorrectly-closed comments (Mike Dalessio),
1590  Enforce maximum length of fuzz input (Nick Wellnhofer),
1591  Remove temporary members from struct _xmlXPathContext (Nick Wellnhofer),
1592  Build the Python extension with PY_SSIZE_T_CLEAN (Victor Stinner),
1593  Add CI test for Python 3 (Nick Wellnhofer),
1594  Add fuzzing dictionaries to EXTRA_DIST (Nick Wellnhofer),
1595  Add 'fuzz' subdirectory to DIST_SUBDIRS (Nick Wellnhofer),
1596  Allow port numbers up to INT_MAX (Nick Wellnhofer),
1597  Handle dumps of corrupted documents more gracefully (Nick Wellnhofer),
1598  Limit size of free lists in XML reader when fuzzing (Nick Wellnhofer),
1599  Hardcode maximum XPath recursion depth (Nick Wellnhofer),
1600  Pass URL of main entity in XML fuzzer (Nick Wellnhofer),
1601  Consolidate seed corpus generation (Nick Wellnhofer),
1602  Test fuzz targets with dummy driver (Nick Wellnhofer),
1603  Fix regression introduced with commit d88df4b (Nick Wellnhofer),
1604  Fix regression introduced with commit 74dcc10b (Nick Wellnhofer),
1605  Add TODO comment in xinclude.c (Nick Wellnhofer),
1606  Stop using maxParserDepth in xpath.c (Nick Wellnhofer),
1607  Remove dead code in xinclude.c (Nick Wellnhofer),
1608  Don't add formatting newlines to XInclude nodes (Nick Wellnhofer),
1609  Don't use SAX1 if all element handlers are NULL (Nick Wellnhofer),
1610  Remove unneeded progress checks in HTML parser (Nick Wellnhofer),
1611  Use strcmp when fuzzing (Nick Wellnhofer),
1612  Fix XPath fuzzer (Nick Wellnhofer),
1613  Fuzz XInclude engine (Nick Wellnhofer),
1614  Add XPath and XPointer fuzzer (Nick Wellnhofer),
1615  Update fuzzing code (Nick Wellnhofer),
1616  More *NodeDumpOutput fixes (Nick Wellnhofer),
1617  Fix *NodeDumpOutput functions (Nick Wellnhofer),
1618  Make xmlNodeDumpOutputInternal non-recursive (Nick Wellnhofer),
1619  Make xhtmlNodeDumpOutput non-recursive (Nick Wellnhofer),
1620  Make htmlNodeDumpFormatOutput non-recursive (Nick Wellnhofer),
1621  Fix .gitattributes (Nick Wellnhofer),
1622  Rework control flow in htmlCurrentChar (Nick Wellnhofer),
1623  Make 'xmllint --html --push -' read from stdin (Nick Wellnhofer),
1624  Remove misleading comments in xpath.c (Nick Wellnhofer),
1625  Update to Devhelp index file format version 2 (Andre Klapper),
1626  Set project language to C (Markus Rickert),
1627  Add variable for working directory of XML Conformance Test Suite (Markus Rickert),
1628  Add additional tests and XML Conformance Test Suite (Markus Rickert),
1629  Add command line option for temp directory in runtest (Markus Rickert),
1630  Ensure LF line endings for test files (Markus Rickert),
1631  Enable runtests and testThreads (Markus Rickert),
1632  Limit regexp nesting depth (Nick Wellnhofer),
1633  Fix return values and documentation in encoding.c (Nick Wellnhofer),
1634  Add regexp regression tests (David Kilzer),
1635  Report error for invalid regexp quantifiers (Nick Wellnhofer),
1636  Fix rebuilding docs, by hiding __attribute__((...)) behind a macro. (Martin Vidner),
1637  Copy xs:duration parser from libexslt (Nick Wellnhofer),
1638  Fuzz target for XML Schemas (Nick Wellnhofer),
1639  Move entity recorder to fuzz.c (Nick Wellnhofer),
1640  Fuzz target for HTML parser (Nick Wellnhofer),
1641  Update GitLab CI container (Nick Wellnhofer),
1642  Add options file for xml fuzzer (Nick Wellnhofer),
1643  Add a couple of libFuzzer targets (Nick Wellnhofer),
1644  Guard new calls to xmlValidatePopElement in xml_reader.c (Daniel Cheng),
1645  Add LIBXML_VALID_ENABLED to xmlreader (Łukasz Wojniłowicz),
1646  Fix typos (Nick Wellnhofer),
1647  Disable LeakSanitizer (Nick Wellnhofer),
1648  Stop calling SAX getEntity handler from XMLReader (Nick Wellnhofer),
1649  Add test case for recursive external parsed entities (Nick Wellnhofer),
1650  Enable error tests with entity substitution (Nick Wellnhofer),
1651  Don't load external entity from xmlSAX2GetEntity (Nick Wellnhofer),
1652  Merge code paths loading external entities (Nick Wellnhofer),
1653  Copy some XMLReader option flags to parser context (Nick Wellnhofer),
1654  Add xmlPopOutputCallbacks (Nick Wellnhofer),
1655  Updated Python test reader2.py (Pieter van Oostrum),
1656  Updated python/tests/tstLastError.py (Pieter van Oostrum),
1657  Use random seed in xmlDictComputeFastKey (Ranier Vilela),
1658  Enable more undefined behavior sanitizers (Nick Wellnhofer)
1659
1660
1661
1662v2.9.10: Oct 30 2019:
1663   - Documentation:
1664  Fix a few more typos ("fonction") (Nick Wellnhofer),
1665  Large batch of typo fixes (Jared Yanovich),
1666  Fix typos: tree: move{ -> s}, reconcil{i -> }ed, h{o -> e}ld by... (Jan Pokorný),
1667  Fix typo: xpath: simpli{ -> fi}ed (Jan Pokorný),
1668  Doc: do not mislead towards "infeasible" scenario wrt. xmlBufNodeDump (Jan Pokorný),
1669  Fix comments in test code (zhouzhongyuan),
1670  fix comment in testReader.c (zhouzhongyuan)
1671
1672   - Portability:
1673  Fix some release issues on Fedora 30 (Daniel Veillard),
1674  Fix exponent digits when running tests under old MSVC (Daniel Richard G),
1675  Work around buggy ceil() function on AIX (Daniel Richard G),
1676  Don't call printf with NULL string in runtest.c (Daniel Richard G),
1677  Switched from unsigned long to ptrdiff_t in parser.c (Stephen Chenney),
1678  timsort.h: support older GCCs (Jérôme Duval),
1679  Make configure.ac work with older pkg-config (Nick Wellnhofer),
1680  Stop defining _REENTRANT on some Win32 platforms (Nick Wellnhofer),
1681  Fix nanohttp.c on MinGW (Nick Wellnhofer),
1682  Fix Windows compiler warning in testC14N.c (Nick Wellnhofer),
1683  Merge testThreadsWin32.c into testThreads.c (Nick Wellnhofer),
1684  Fix Python bindings under Windows (Nick Wellnhofer)
1685
1686   - Bug Fixes:
1687  Another fix for conditional sections at end of document (Nick Wellnhofer),
1688  Fix for conditional sections at end of document (Nick Wellnhofer),
1689  Make sure that Python tests exit with error code (Nick Wellnhofer),
1690  Audit memory error handling in xpath.c (Nick Wellnhofer),
1691  Fix error code in xmlTextWriterStartDocument (Nick Wellnhofer),
1692  Fix integer overflow when counting written bytes (Nick Wellnhofer),
1693  Fix uninitialized memory access in HTML parser (Nick Wellnhofer),
1694  Fix memory leak in xmlSchemaValAtomicType (Nick Wellnhofer),
1695  Disallow conditional sections in internal subset (Nick Wellnhofer),
1696  Fix use-after-free in xmlTextReaderFreeNodeList (Nick Wellnhofer),
1697  Fix Regextests (Nick Wellnhofer),
1698  Fix empty branch in regex (Nick Wellnhofer),
1699  Fix integer overflow in entity recursion check (Nick Wellnhofer),
1700  Don't read external entities or XIncludes from stdin (Nick Wellnhofer),
1701  Fix Schema determinism check of ##other namespaces (Nick Wellnhofer),
1702  Fix potential null deref in xmlSchemaIDCFillNodeTables (zhouzhongyuan),
1703  Fix potential memory leak in xmlBufBackToBuffer (Nick Wellnhofer),
1704  Fix error message when processing XIncludes with fallbacks (Nick Wellnhofer),
1705  Fix memory leak in xmlRegEpxFromParse (zhouzhongyuan),
1706  14:00 is a valid timezone for xs:dateTime (Nick Wellnhofer),
1707  Fix memory leak in xmlParseBalancedChunkMemoryRecover (Zhipeng Xie),
1708  Fix potential null deref in xmlRelaxNGParsePatterns (Nick Wellnhofer),
1709  Misleading error message with xs:{min|max}Inclusive (bettermanzzy),
1710  Fix memory leak in xmlXIncludeLoadTxt (Wang Kirin),
1711  Partial fix for comparison of xs:durations (Nick Wellnhofer),
1712  Fix null deref in xmlreader buffer (zhouzhongyuan),
1713  Fix unability to RelaxNG-validate grammar with choice-based name class (Jan Pokorný),
1714  Fix unability to validate ambiguously constructed interleave for RelaxNG (Jan Pokorný),
1715  Fix possible null dereference in xmlXPathIdFunction (zhouzhongyuan),
1716  fix memory leak in xmlAllocOutputBuffer (zhouzhongyuan),
1717  Fix unsigned int overflow (Jens Eggerstedt),
1718  dict.h: gcc 2.95 doesn't allow multiple storage classes (Nick Wellnhofer),
1719  Fix another code path in xmlParseQName (Nick Wellnhofer),
1720  Make sure that xmlParseQName returns NULL in error case (Nick Wellnhofer),
1721  Fix build without reader but with pattern (Nick Wellnhofer),
1722  Fix memory leak in xmlAllocOutputBufferInternal error path (Nick Wellnhofer),
1723  Fix unsigned integer overflow (Nick Wellnhofer),
1724  Fix return value of xmlOutputBufferWrite (Nick Wellnhofer),
1725  Fix parser termination from "Double hyphen within comment" error (David Warring),
1726  Fix call stack overflow in xmlFreePattern (Nick Wellnhofer),
1727  Fix null deref in previous commit (Nick Wellnhofer),
1728  Fix memory leaks in xmlXPathParseNameComplex error paths (Nick Wellnhofer),
1729  Check for integer overflow in xmlXPtrEvalChildSeq (Nick Wellnhofer),
1730  Fix xmllint dump of XPath namespace nodes (Nick Wellnhofer),
1731  Fix float casts in xmlXPathSubstringFunction (Nick Wellnhofer),
1732  Fix null deref in xmlregexp error path (Nick Wellnhofer),
1733  Fix null pointer dereference in xmlTextReaderReadOuterXml (Nick Wellnhofer),
1734  Fix memory leaks in xmlParseStartTag2 error paths (Nick Wellnhofer),
1735  Fix memory leak in xmlSAX2StartElement (Nick Wellnhofer),
1736  Fix commit "Memory leak in xmlFreeID (xmlreader.c)" (Nick Wellnhofer),
1737  Fix NULL pointer deref in xmlTextReaderValidateEntity (Nick Wellnhofer),
1738  Memory leak in xmlFreeTextReader (Nick Wellnhofer),
1739  Memory leak in xmlFreeID (xmlreader.c) (Nick Wellnhofer)
1740
1741   - Improvements:
1742  Run XML conformance tests under CI (Nick Wellnhofer),
1743  Update GitLab CI config (Nick Wellnhofer),
1744  Propagate memory errors in valuePush (Nick Wellnhofer),
1745  Propagate memory errors in xmlXPathCompExprAdd (Nick Wellnhofer),
1746  Make xmlFreeDocElementContent non-recursive (Nick Wellnhofer),
1747  Enable continuous integration via GitLab CI (Nick Wellnhofer),
1748  Avoid ignored attribute warnings under GCC (Nick Wellnhofer),
1749  Make xmlDumpElementContent non-recursive (Nick Wellnhofer),
1750  Make apibuild.py ignore ATTRIBUTE_NO_SANITIZE (Nick Wellnhofer),
1751  Mark xmlExp* symbols as removed (Nick Wellnhofer),
1752  Make xmlParseConditionalSections non-recursive (Nick Wellnhofer),
1753  Adjust expected error in Python tests (Nick Wellnhofer),
1754  Make xmlTextReaderFreeNodeList non-recursive (Nick Wellnhofer),
1755  Make xmlFreeNodeList non-recursive (Nick Wellnhofer),
1756  Make xmlParseContent and xmlParseElement non-recursive (Nick Wellnhofer),
1757  Remove executable bit from non-executable files (Nick Wellnhofer),
1758  Fix expected output of test/schemas/any4 (Nick Wellnhofer),
1759  Optimize build instructions in README (zhouzhongyuan),
1760  xml2-config.in: Output CFLAGS and LIBS on the same line (Hugh McMaster),
1761  xml2-config: Add a --dynamic switch to print only shared libraries (Hugh McMaster),
1762  Annotate functions with __attribute__((no_sanitize)) (Nick Wellnhofer),
1763  Fix warnings when compiling without reader or push parser (Nick Wellnhofer),
1764  Remove unused member `doc` in xmlSaveCtxt (Nick Wellnhofer),
1765  Limit recursion depth in xmlXPathCompOpEvalPredicate (Nick Wellnhofer),
1766  Remove -Wno-array-bounds (Nick Wellnhofer),
1767  Remove unreachable code in xmlXPathCountFunction (Nick Wellnhofer),
1768  Improve XPath predicate and filter evaluation (Nick Wellnhofer),
1769  Limit recursion depth in xmlXPathOptimizeExpression (Nick Wellnhofer),
1770  Disable hash randomization when fuzzing (Nick Wellnhofer),
1771  Optional recursion limit when parsing XPath expressions (Nick Wellnhofer),
1772  Optional recursion limit when evaluating XPath expressions (Nick Wellnhofer),
1773  Use break statements in xmlXPathCompOpEval (Nick Wellnhofer),
1774  Optional XPath operation limit (Nick Wellnhofer),
1775  Fix compilation with --with-minimum (Nick Wellnhofer),
1776  Check XPath stack after calling functions (Nick Wellnhofer),
1777  Remove debug printf in xmlreader.c (Nick Wellnhofer),
1778  Always define LIBXML_THREAD_ENABLED when enabled (Michael Haubenwallner),
1779  Regenerate NEWS (Nick Wellnhofer),
1780  Change git repo URL (Nick Wellnhofer),
1781  Change bug tracker URL (Nick Wellnhofer),
1782  Remove outdated HTML file (Nick Wellnhofer),
1783  Fix unused function warning in testapi.c (Nick Wellnhofer),
1784  Add some generated test files to .gitignore (Nick Wellnhofer),
1785  Remove unneeded function pointer casts (Nick Wellnhofer),
1786  Fix -Wcast-function-type warnings (GCC 8) (Nick Wellnhofer),
1787  Fix -Wformat-truncation warnings (GCC 8) (Nick Wellnhofer)
1788
1789   - Cleanups:
1790  Rebuild docs (Nick Wellnhofer),
1791  Disable xmlExp regex code (Nick Wellnhofer),
1792  Remove redundant code in xmlRelaxNGValidateState (Nick Wellnhofer),
1793  Remove redundant code in xmlXPathCompRelationalExpr (Nick Wellnhofer)
1794
1795
1796
1797v2.9.9: Jan 03 2019:
1798   - Security:
1799  CVE-2018-9251 CVE-2018-14567 Fix infinite loop in LZMA decompression (Nick Wellnhofer),
1800  CVE-2018-14404 Fix nullptr deref with XPath logic ops (Nick Wellnhofer),
1801
1802   - Documentation:
1803  reader: Fix documentation comment (Mohammed Sadiq)
1804
1805   - Portability:
1806  Fix MSVC build with lzma (Nick Wellnhofer),
1807  Variables need 'extern' in static lib on Cygwin (Michael Haubenwallner),
1808  Really declare dllexport/dllimport for Cygwin (Michael Haubenwallner),
1809  Merge branch 'patch-2' into 'master' (Nick Wellnhofer),
1810  Change dir to $THEDIR after ACLOCAL_PATH check autoreconf creates aclocal.m4 in $srcdir (Vitaly Buka),
1811  Improve error message if pkg.m4 couldn't be found (Nick Wellnhofer),
1812  NaN and Inf fixes for pre-C99 compilers (Nick Wellnhofer)
1813
1814   - Bug Fixes:
1815  Revert "Support xmlTextReaderNextSibling w/o preparsed doc" (Nick Wellnhofer),
1816  Fix building relative URIs (Thomas Holder),
1817  Problem with data in interleave in RelaxNG validation (Nikolai Weibull),
1818  Fix memory leak in xmlSwitchInputEncodingInt error path (Nick Wellnhofer),
1819  Set doc on element obtained from freeElems (Nick Wellnhofer),
1820  Fix HTML serialization with UTF-8 encoding (Nick Wellnhofer),
1821  Use actual doc in xmlTextReaderRead*Xml (Nick Wellnhofer),
1822  Unlink node before freeing it in xmlSAX2StartElement (Nick Wellnhofer),
1823  Check return value of nodePush in xmlSAX2StartElement (Nick Wellnhofer),
1824  Free input buffer in xmlHaltParser (Nick Wellnhofer),
1825  Reset HTML parser input pointers on encoding failure (Nick Wellnhofer),
1826  Don't run icu_parse_test if EUC-JP is unsupported (Nick Wellnhofer),
1827  Fix xmlSchemaValidCtxtPtr reuse memory leak (Greg Hildstrom),
1828  Fix xmlTextReaderNext with preparsed document (Felix Bünemann),
1829  Remove stray character from comment (Nick Wellnhofer),
1830  Remove a misleading line from xmlCharEncOutput (Andrey Bienkowski),
1831  HTML noscript should not close p (Daniel Veillard),
1832  Don't change context node in xmlXPathRoot (Nick Wellnhofer),
1833  Stop using XPATH_OP_RESET (Nick Wellnhofer),
1834  Revert "Change calls to xmlCharEncInput to set flush false" (Nick Wellnhofer)
1835
1836   - Improvements:
1837  Fix "Problem with data in interleave in RelaxNG validation" (Nikolai Weibull),
1838  cleanup: remove some unreachable code (Thomas Holder),
1839  add --relative to testURI (Thomas Holder),
1840  Remove redefined starts and defines inside include elements (Nikolai Weibull),
1841  Allow choice within choice in nameClass in RELAX NG (Nikolai Weibull),
1842  Look inside divs for starts and defines inside include (Nikolai Weibull),
1843  Add compile and libxml2-config.cmake to .gitignore (Nikolai Weibull),
1844  Stop using doc->charset outside parser code (Nick Wellnhofer),
1845  Add newlines to 'xmllint --xpath' output (Nick Wellnhofer),
1846  Don't include SAX.h from globals.h (Nick Wellnhofer),
1847  Support xmlTextReaderNextSibling w/o preparsed doc (Felix Bünemann),
1848  Don't instruct user to run make when autogen.sh failed (林博仁(Buo-ren Lin)),
1849  Run Travis ASan tests with "sudo: required" (Nick Wellnhofer),
1850  Improve restoring of context size and position (Nick Wellnhofer),
1851  Simplify and harden nodeset filtering (Nick Wellnhofer),
1852  Avoid unnecessary backups of the context node (Nick Wellnhofer),
1853  Fix inconsistency in xmlXPathIsInf (Nick Wellnhofer)
1854
1855   - Cleanups:
1856
1857
1858
1859v2.9.8: Mar 05 2018:
1860   - Portability:
1861  python: remove single use of _PyVerify_fd (Patrick Welche),
1862  Build more test executables on Windows/MSVC (Nick Wellnhofer),
1863  Stop including ansidecl.h (Nick Wellnhofer),
1864  Fix libz and liblzma detection (Nick Wellnhofer),
1865  Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)
1866
1867   - Bug Fixes:
1868  Fix xmlParserEntityCheck (Nick Wellnhofer),
1869  Halt parser in case of encoding error (Nick Wellnhofer),
1870  Clear entity content in case of errors (Nick Wellnhofer),
1871  Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),
1872  Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),
1873  Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),
1874  Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),
1875  Fix -Wenum-compare warnings (Nick Wellnhofer),
1876  Fix callback signature in testapi.c (Nick Wellnhofer),
1877  Fix unused parameter warning without ICU (Nick Wellnhofer),
1878  Fix IO callback signatures (Nick Wellnhofer),
1879  Fix misc callback signatures (Nick Wellnhofer),
1880  Fix list callback signatures (Nick Wellnhofer),
1881  Fix hash callback signatures (Nick Wellnhofer),
1882  Refactor name and type signature for xmlNop (Vlad Tsyrklevich),
1883  Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),
1884  Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)
1885
1886   - Improvements:
1887  Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),
1888  Improve handling of context input_id (Daniel Veillard),
1889  Add resource file to Windows DLL (ccpaging),
1890  Run Travis tests with -Werror (Nick Wellnhofer),
1891  Build with "-Wall -Wextra" (Nick Wellnhofer),
1892  Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),
1893  Remove unused AC_CHECKs (Nick Wellnhofer),
1894  Update information about contributing (Nick Wellnhofer),
1895  Fix -Wmisleading-indentation warnings (Nick Wellnhofer),
1896  Don't touch CFLAGS in configure.ac (Nick Wellnhofer),
1897  Ignore function pointer cast warnings (Nick Wellnhofer),
1898  Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),
1899  Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),
1900  Add test for ICU flush and pivot buffer (Nick Wellnhofer),
1901  Compile testapi with -Wno-unused-function (Nick Wellnhofer)
1902
1903
1904
19052.9.7: Nov 02 2017:
1906   - Documentation:
1907  xmlcatalog: refresh man page wrt. querying system catalog easily (Jan Pokorný)
1908
1909   - Portability:
1910  Fix deprecated Travis compiler flag (Nick Wellnhofer),
1911  Add declaration for DllMain (J. Peter Mugaas),
1912  Fix preprocessor conditional in threads.h (J. Peter Mugaas),
1913  Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),
1914  Fix macro redefinition warning (J. Peter Mugaas),
1915  Default to native threads on MinGW-w64 (Nick Wellnhofer),
1916  Simplify Windows IO functions (Nick Wellnhofer),
1917  Fix runtest on Windows (Nick Wellnhofer),
1918  socklen_t is always int on Windows (Nick Wellnhofer),
1919  Don't redefine socket error codes on Windows (Nick Wellnhofer),
1920  Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),
1921  Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)
1922
1923   - Bug Fixes:
1924  xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),
1925  Fix comparison of nodesets to strings (Nick Wellnhofer)
1926
1927   - Improvements:
1928  Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),
1929  Fix mixed decls and code in timsort.h (Nick Wellnhofer),
1930  Rework handling of return values in thread tests (Nick Wellnhofer),
1931  Fix unused variable warnings in testrecurse (Nick Wellnhofer),
1932  Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),
1933  Upgrade timsort.h to latest revision (Nick Wellnhofer),
1934  Increase warning level to /W3 under MSVC (Nick Wellnhofer),
1935  Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),
1936  Update .gitignore for Windows (Nick Wellnhofer),
1937  Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),
1938  Fix the Windows header mess (Nick Wellnhofer),
1939  Don't include winsock2.h in xmllint.c (Nick Wellnhofer),
1940  Remove generated file python/setup.py from version control (Nick Wellnhofer),
1941  Use __linux__ macro in generated code (Nick Wellnhofer)
1942
1943
1944
1945v2.9.6: Oct 06 2017:
1946   - Portability:
1947  Change preprocessor OS tests to __linux__ (Nick Wellnhofer)
1948
1949   - Bug Fixes:
1950  Fix XPath stack frame logic (Nick Wellnhofer),
1951  Report undefined XPath variable error message (Nick Wellnhofer),
1952  Fix regression with librsvg (Nick Wellnhofer),
1953  Handle more invalid entity values in recovery mode (Nick Wellnhofer),
1954  Fix structured validation errors (Nick Wellnhofer),
1955  Fix memory leak in LZMA decompressor (Nick Wellnhofer),
1956  Set memory limit for LZMA decompression (Nick Wellnhofer),
1957  Handle illegal entity values in recovery mode (Nick Wellnhofer),
1958  Fix debug dump of streaming XPath expressions (Nick Wellnhofer),
1959  Fix memory leak in nanoftp (Nick Wellnhofer),
1960  Fix memory leaks in SAX1 parser (Nick Wellnhofer)
1961
1962
1963
1964v2.9.5: Sep 04 2017:
1965   - Security:
1966  Detect infinite recursion in parameter entities (Nick Wellnhofer),
1967  Fix handling of parameter-entity references (Nick Wellnhofer),
1968  Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),
1969  Fix XPointer paths beginning with range-to (Nick Wellnhofer)
1970
1971   - Documentation:
1972  Documentation fixes (Nick Wellnhofer),
1973  Spelling and grammar fixes (Nick Wellnhofer)
1974
1975   - Portability:
1976  Adding README.zOS to list of extra files for the release (Daniel Veillard),
1977  Description of work needed to compile on zOS (Stéphane Michaut),
1978  Porting libxml2 on zOS encoding of code (Stéphane Michaut),
1979  small changes for OS/400 (Patrick Monnerat),
1980  relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)
1981
1982   - Bug Fixes:
1983  Problem resolving relative URIs (Daniel Veillard),
1984  Fix unwanted warnings when switching encodings (Nick Wellnhofer),
1985  Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),
1986  Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),
1987  Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),
1988  Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),
1989  Send xmllint usage error to stderr (Nick Wellnhofer),
1990  Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),
1991  Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),
1992  Fix xmlHaltParser (Nick Wellnhofer),
1993  Fix pathological performance when outputting charrefs (Nick Wellnhofer),
1994  Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),
1995  Fix duplicate SAX callbacks for entity content (David Kilzer),
1996  Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),
1997  Fix copy-paste errors in error messages (Nick Wellnhofer),
1998  Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),
1999  Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),
2000  Reset parser input pointers on encoding failure (Nick Wellnhofer),
2001  Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),
2002  Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),
2003  Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),
2004  Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),
2005  Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),
2006  Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),
2007  Stop parser on unsupported encodings (Nick Wellnhofer),
2008  Check for integer overflow in memory debug code (Nick Wellnhofer),
2009  Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),
2010  Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),
2011  Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),
2012  Check XPath exponents for overflow (Nick Wellnhofer),
2013  Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),
2014  Fix spurious error message (Nick Wellnhofer),
2015  Fix memory leak in xmlCanonicPath (Nick Wellnhofer),
2016  Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),
2017  Fix memory leak in pattern error path (Nick Wellnhofer),
2018  Fix memory leak in parser error path (Nick Wellnhofer),
2019  Fix memory leaks in XPointer error paths (Nick Wellnhofer),
2020  Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),
2021  Fix memory leak in XPath filter optimizations (Nick Wellnhofer),
2022  Fix memory leaks in XPath error paths (Nick Wellnhofer),
2023  Do not leak the new CData node if adding fails (David Tardon),
2024  Prevent unwanted external entity reference (Neel Mehta),
2025  Increase buffer space for port in HTTP redirect support (Daniel Veillard),
2026  Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),
2027  Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),
2028  Fix format string warnings (Nick Wellnhofer),
2029  Disallow namespace nodes in XPointer points (Nick Wellnhofer),
2030  Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),
2031  Fix attribute decoding during XML schema validation (Alex Henrie),
2032  Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)
2033
2034   - Improvements:
2035  Updating the spec file to reflect Fedora 24 (Daniel Veillard),
2036  Add const in five places to move 1 KiB to .rdata (Bruce Dawson),
2037  Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),
2038  Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),
2039  Simplify handling of parameter entity references (Nick Wellnhofer),
2040  Deduplicate code in encoding.c (Nick Wellnhofer),
2041  Make HTML parser functions take const pointers (Nick Wellnhofer),
2042  Build test programs only when needed (Nick Wellnhofer),
2043  Fix doc/examples/index.py (Nick Wellnhofer),
2044  Fix compiler warnings in threads.c (Nick Wellnhofer),
2045  Fix empty-body warning in nanohttp.c (Nick Wellnhofer),
2046  Fix cast-align warnings (Nick Wellnhofer),
2047  Fix unused-parameter warnings (Nick Wellnhofer),
2048  Rework entity boundary checks (Nick Wellnhofer),
2049  Don't switch encoding for internal parameter entities (Nick Wellnhofer),
2050  Merge duplicate code paths handling PE references (Nick Wellnhofer),
2051  Test SAX2 callbacks with entity substitution (Nick Wellnhofer),
2052  Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),
2053  Misc fixes for 'make tests' (Nick Wellnhofer),
2054  Initialize keepBlanks in HTML parser (Nick Wellnhofer),
2055  Add test cases for bug 758518 (David Kilzer),
2056  Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),
2057  Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),
2058  Allow zero sized memory input buffers (Nick Wellnhofer),
2059  Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),
2060  Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),
2061  Make Travis print UBSan stacktraces (Nick Wellnhofer),
2062  Add .travis.yml (Nick Wellnhofer),
2063  Fix expected error output in Python tests (Nick Wellnhofer),
2064  Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),
2065  Disable LeakSanitizer when running API tests (Nick Wellnhofer),
2066  Avoid out-of-bound array access in API tests (Nick Wellnhofer),
2067  Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),
2068  Parse small XPath numbers more accurately (Nick Wellnhofer),
2069  Rework XPath rounding functions (Nick Wellnhofer),
2070  Fix white space in test output (Nick Wellnhofer),
2071  Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),
2072  Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),
2073  Rework final handling of XPath results (Nick Wellnhofer),
2074  Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),
2075  Remove unused variables (Nick Wellnhofer),
2076  Don't print generic error messages in XPath tests (Nick Wellnhofer)
2077
2078   - Cleanups:
2079  Fix a couple of misleading indentation errors (Daniel Veillard),
2080  Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)
2081
2082
2083
20842.9.4: May 23 2016:
2085   - Security:
2086  More format string warnings with possible format string vulnerability (David Kilzer),
2087  Avoid building recursive entities (Daniel Veillard),
2088  Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),
2089  Heap-based buffer-underreads due to xmlParseName (David Kilzer),
2090  Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),
2091  Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),
2092  Fix some format string warnings with possible format string vulnerability (David Kilzer),
2093  Detect change of encoding when parsing HTML names (Hugh Davenport),
2094  Fix inappropriate fetch of entities content (Daniel Veillard),
2095  Bug 759398: Heap use-after-free in xmlDictComputeFastKey <https://bugzilla.gnome.org/show_bug.cgi?id=759398> (Pranjal Jumde),
2096  Bug 758605: Heap-based buffer overread in xmlDictAddString <https://bugzilla.gnome.org/show_bug.cgi?id=758605> (Pranjal Jumde),
2097  Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal <https://bugzilla.gnome.org/show_bug.cgi?id=758588> (David Kilzer),
2098  Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup <https://bugzilla.gnome.org/show_bug.cgi?id=757711> (Pranjal Jumde),
2099  Add missing increments of recursion depth counter to XML parser. (Peter Simons)
2100
2101   - Documentation:
2102  Fix typo: s{ ec -> cr }cipt (Jan Pokorný),
2103  Fix typos: dictio{ nn -> n }ar{y,ies} (Jan Pokorný),
2104  Fix typos: PATH_{ SEAPARATOR -> SEPARATOR } (Jan Pokorný),
2105  Correct a typo. (Shlomi Fish)
2106
2107   - Portability:
2108  Correct the usage of LDFLAGS (Mattias Hansson),
2109  Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),
2110  libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),
2111  Fix apibuild for a recently added construct (Daniel Veillard),
2112  Use pkg-config to locate zlib when possible (Stewart Brodie),
2113  Use pkg-config to locate ICU when possible (Stewart Brodie),
2114  Portability to non C99 compliant compilers (Patrick Monnerat),
2115  dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),
2116  os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),
2117  os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),
2118  os400: implement CL command XMLCATALOG. (Patrick Monnerat),
2119  os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),
2120  os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),
2121  os400: implement CL command XMLLINT. (Patrick Monnerat),
2122  os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),
2123  os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),
2124  os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),
2125  os400: use like() for double type. (Patrick Monnerat),
2126  os400: use like() for int type. (Patrick Monnerat),
2127  os400: use like() for unsigned int type. (Patrick Monnerat),
2128  os400: use like() for enum types. (Patrick Monnerat),
2129  Add xz to xml2-config --libs output (Baruch Siach),
2130  Bug 760190: configure.ac should be able to build --with-icu without icu-config tool <https://bugzilla.gnome.org/show_bug.cgi?id=760190> (David Kilzer),
2131  win32\VC10\config.h and VS 2015 (Bruce Dawson),
2132  Add configure maintainer mode (orzen)
2133
2134   - Bug Fixes:
2135  Avoid an out of bound access when serializing malformed strings (Daniel Veillard),
2136  Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),
2137  Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),
2138  Bug 763071: heap-buffer-overflow in xmlStrncat <https://bugzilla.gnome.org/show_bug.cgi?id=763071> (Pranjal Jumde),
2139  Integer overflow parsing port number in URI (Michael Paddon),
2140  Fix an error with regexp on nullable counted char transition (Daniel Veillard),
2141  Fix memory leak with XPath namespace nodes (Nick Wellnhofer),
2142  Fix namespace axis traversal (Nick Wellnhofer),
2143      Fix null pointer deref in docs with no root element (Hugh Davenport),
2144  Fix XSD validation of URIs with ampersands (Alex Henrie),
2145  xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),
2146  xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),
2147  xmllint: flush stdout before interactive shell input. (Patrick Monnerat),
2148  Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),
2149  Fix namespace::node() XPath expression (Nick Wellnhofer),
2150  Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),
2151  Fix parsing of NCNames in XPath (Nick Wellnhofer),
2152  Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),
2153  Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),
2154  Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" <https://bugzilla.gnome.org/show_bug.cgi?id=760921> (David Kilzer),
2155  Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd <https://bugzilla.gnome.org/show_bug.cgi?id=760861> (David Kilzer),
2156  error.c: *input->cur == 0 does not mean no error (Pavel Raiskup),
2157  Add missing RNG test files (David Kilzer),
2158  Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer <https://bugzilla.gnome.org/show_bug.cgi?id=760183> (David Kilzer),
2159  Bug 758572: ASAN crash in make check <https://bugzilla.gnome.org/show_bug.cgi?id=758572> (David Kilzer),
2160  Bug 721158: Missing ICU string when doing --version on xmllint <https://bugzilla.gnome.org/show_bug.cgi?id=721158> (David Kilzer),
2161  python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),
2162  Add autogen.sh to distrib (orzen),
2163  Heap-based buffer overread in xmlNextChar (Daniel Veillard)
2164
2165   - Improvements:
2166  Add more debugging info to runtest (Daniel Veillard),
2167  Implement "runtest -u" mode (David Kilzer),
2168  Add a make rule to rebuild for ASAN (Daniel Veillard)
2169
2170
2171
2172v2.9.3: Nov 20 2015:
2173   - Security:
2174  CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),
2175  CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),
2176  CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),
2177  CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),
2178  CVE-2015-5312 Another entity expansion issue (David Drysdale),
2179  CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),
2180  CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),
2181  CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),
2182  CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),
2183  CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),
2184  CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)
2185  CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),
2186  CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),
2187
2188   - Documentation:
2189  Correct spelling of "calling" (Alex Henrie),
2190  Fix a small error in xmllint --format description (Fabien Degomme),
2191  Avoid XSS on the search of xmlsoft.org (Daniel Veillard)
2192
2193   - Portability:
2194  threads: use forward declarations only for glibc (Michael Heimpold),
2195  Update Win32 configure.js to search for configure.ac (Daniel Veillard)
2196
2197   - Bug Fixes:
2198  Bug on creating new stream from entity (Daniel Veillard),
2199  Fix some loop issues embedding NEXT (Daniel Veillard),
2200  Do not print error context when there is none (Daniel Veillard),
2201  Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),
2202  Fix parsing short unclosed comment uninitialized access (Daniel Veillard),
2203  Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),
2204  Fix a bug in CData error handling in the push parser (Daniel Veillard),
2205  Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),
2206  Fix the spurious ID already defined error (Daniel Veillard),
2207  Fix previous change to node sort order (Nick Wellnhofer),
2208  Fix a self assignment issue raised by clang (Scott Graham),
2209  Fail parsing early on if encoding conversion failed (Daniel Veillard),
2210  Do not process encoding values if the declaration if broken (Daniel Veillard),
2211  Silence clang's -Wunknown-attribute (Michael Catanzaro),
2212  xmlMemUsed is not thread-safe (Martin von Gagern),
2213  Fix support for except in nameclasses (Daniel Veillard),
2214  Fix order of root nodes (Nick Wellnhofer),
2215  Allow attributes on descendant-or-self axis (Nick Wellnhofer),
2216  Fix the fix to Windows locking (Steve Nairn),
2217  Fix timsort invariant loop re: Envisage article (Christopher Swenson),
2218  Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),
2219  Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),
2220  Remove various unused value assignments (Philip Withnall),
2221  Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),
2222  Revert "Missing initialization for the catalog module" (Daniel Veillard)
2223
2224   - Improvements:
2225  Reuse xmlHaltParser() where it makes sense (Daniel Veillard),
2226  xmlStopParser reset errNo (Daniel Veillard),
2227  Re-enable xz support by default (Daniel Veillard),
2228  Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),
2229  Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),
2230  Regression test for bug #695699 (Nick Wellnhofer),
2231  Add a couple of XPath tests (Nick Wellnhofer),
2232  Add Python 3 rpm subpackage (Tomas Radej),
2233  libxml2-config.cmake.in: update include directories (Samuel Martin),
2234  Adding example from bugs 738805 to regression tests (Daniel Veillard)
2235
2236   - Cleanups:
2237
2238
2239
22402.9.2: Oct 16 2014:
2241   - Security:
2242  Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),
2243  CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)
2244
2245   - Bug Fixes:
2246  fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer),
2247  xmlmemory: handle realloc properly (Yegor Yefremov),
2248  Python generator bug raised by the const change (Daniel Veillard),
2249  Windows Critical sections not released correctly (Daniel Veillard),
2250  Parser error on repeated recursive entity expansion containing &lt; (Daniel Veillard),
2251  xpointer : fixing Null Pointers (Gaurav Gupta),
2252  Remove Unnecessary Null check in xpointer.c (Gaurav Gupta),
2253  parser bug on misformed namespace attributes (Dennis Filder),
2254  Pointer dereferenced before null check (Daniel Veillard),
2255  Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta),
2256  Possible overflow in HTMLParser.c (Daniel Veillard),
2257  python/tests/sync.py assumes Python dictionaries are ordered (John Beck),
2258  Fix Enum check and missing break (Gaurav Gupta),
2259  xmlIO: Handle error returns from dup() (Philip Withnall),
2260  Fix a problem properly saving URIs (Daniel Veillard),
2261  wrong error column in structured error when parsing attribute values (Juergen Keil),
2262  wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil),
2263  no error column in structured error handler for xml schema validation errors (Juergen Keil),
2264  Couple of Missing Null checks (Gaurav Gupta),
2265  Add couple of missing Null checks (Daniel Veillard),
2266  xmlschemastypes: Fix potential array overflow (Philip Withnall),
2267  runtest: Fix a memory leak on parse failure (Philip Withnall),
2268  xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall),
2269  xmlcatalog: Fix a memory leak on quit (Philip Withnall),
2270  HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall),
2271  Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer),
2272  Avoid Possible Null Pointer in trio.c (Gaurav Gupta),
2273  Fix processing in SAX2 in case of an allocation failure (Daniel Veillard),
2274  XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard),
2275  Fix various Missing Null checks (Gaurav Gupta),
2276  Fix a potential NULL dereference (Daniel Veillard),
2277  Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta),
2278  Add a missing argument check (Gaurav Gupta),
2279  Adding a check in case of allocation error (Gaurav Gupta),
2280  xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder),
2281  Adding some missing NULL checks (Gaurav),
2282  Fixes for xmlInitParserCtxt (Daniel Veillard),
2283  Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard),
2284  erroneously ignores a validation error if no error callback set (Daniel Veillard),
2285  xmllint was not parsing the --c14n11 flag (Sérgio Batista),
2286  Avoid Possible null pointer dereference in memory debug mode (Gaurav),
2287  Avoid Double Null Check (Gaurav),
2288  Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer),
2289  Fix xmlParseInNodeContext() if node is not element (Daniel Veillard),
2290  Avoid a possible NULL pointer dereference (Gaurav),
2291  Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard),
2292  Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard),
2293  fixing a ptotential uninitialized access (Daniel Veillard),
2294  Fix an fd leak in an error case (Daniel Veillard),
2295  Missing initialization for the catalog module (Daniel Veillard),
2296  Handling of XPath function arguments in error case (Nick Wellnhofer),
2297  Fix a couple of missing NULL checks (Gaurav),
2298  Avoid a possibility of dangling encoding handler (Gaurav),
2299  Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks),
2300  Fix a bug loading some compressed files (Mike Alexander),
2301  Fix XPath node comparison bug (Gaurav),
2302  Type mismatch in xmlschemas.c (Gaurav),
2303  Type mismatch in xmlschemastypes.c (Gaurav),
2304  Avoid a deadcode in catalog.c (Daniel Veillard),
2305  run close socket on Solaris, same as we do on other platforms (Denis Pauk),
2306  Fix pointer dereferenced before null check (Gaurav),
2307  Fix a potential NULL dereference in tree code (Daniel Veillard),
2308  Fix potential NULL pointer dereferences in regexp code (Gaurav),
2309  xmllint --pretty crashed without following numeric argument (Tim Galeckas),
2310  Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer),
2311  Fix XPath '//' optimization with predicates (Nick Wellnhofer),
2312  Clear up a potential NULL dereference (Daniel Veillard),
2313  Fix a possible NULL dereference (Gaurav),
2314  Avoid crash if allocation fails (Daniel Veillard),
2315  Remove occasional leading space in XPath number formatting (Daniel Veillard),
2316  Fix handling of mmap errors (Daniel Veillard),
2317  Catch malloc error and exit accordingly (Daniel Veillard),
2318  missing else in xlink.c (Ami Fischman),
2319  Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard),
2320  Fix a regression in xmlGetDocCompressMode() (Daniel Veillard),
2321  properly quote the namespace uris written out during c14n (Aleksey Sanin),
2322  Remove premature XInclude check on URI being relative (Alexey Neyman),
2323  Fix missing break on last() function for attributes (dcb),
2324  Do not URI escape in server side includes (Romain Bondue),
2325  Fix an error in xmlCleanupParser (Alexander Pastukhov)
2326
2327   - Documentation:
2328  typo in error messages "colon are forbidden from..." (Daniel Veillard),
2329  Fix a link to James SAX documentation old page (Daniel Veillard),
2330  Fix typos in relaxng.c (Jan Pokorný),
2331  Fix a doc typo (Daniel Veillard),
2332  Fix typos in {tree,xpath}.c (errror) (Jan Pokorný),
2333  Add limitations about encoding conversion (Daniel Veillard),
2334  Fix typos in xmlschemas{,types}.c (Jan Pokorný),
2335  Fix incorrect spelling entites->entities (Jan Pokorný),
2336  Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard)
2337
2338   - Portability:
2339  AC_CONFIG_FILES and executable bit (Roumen Petrov),
2340  remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov),
2341  fix some tabs mixing incompatible with python3 (Roumen Petrov),
2342  Visual Studio 14 CTP defines snprintf() (Francis Dupont),
2343  OS400: do not try to copy unexisting doc files (Patrick Monnerat),
2344  OS400: use either configure.ac or configure.in. (Patrick Monnerat),
2345  os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat),
2346  OS400: Add some more C macros equivalent procedures. (Patrick Monnerat),
2347  OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat),
2348  OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat),
2349  OS400: include in distribution tarball. (Patrick Monnerat),
2350  OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat),
2351  OS400: Add compilation scripts. (Patrick Monnerat),
2352  OS400: ILE RPG language header files. (Patrick Monnerat),
2353  OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat),
2354  OS400: UTF8<-->EBCDIC wrappers for system and external library calls (Patrick Monnerat),
2355  OS400: Easy character transcoding support (Patrick Monnerat),
2356  OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat),
2357  OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat),
2358  Fix building when configuring without xpath and xptr (Daniel Veillard),
2359  configure: Add --with-python-install-dir (Jonas Eriksson),
2360  Fix compilation with minimum and xinclude. (Nicolas Le Cam),
2361  Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam),
2362  Fix compilation with minimum and schematron. (Nicolas Le Cam),
2363  Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam),
2364  Don't use xmlValidateName() when not available. (Nicolas Le Cam),
2365  Fix a portability issue on Windows (Longstreth Jon),
2366  Various portability patches for OpenVMS (Jacob (Jouk) Jansen),
2367  Use specific macros for portability to OS/400 (Patrick Monnerat),
2368  Add macros needed for OS/400 portability (Patrick Monnerat),
2369  Portability patch for fopen on OS/400 (Patrick Monnerat),
2370  Portability fixes for OS/400 (Patrick Monnerat),
2371  Improve va_list portability (Patrick Monnerat),
2372  Portability fix (Patrick Monnerat),
2373  Portability fix (Patrick Monnerat),
2374  Generic portability fix (Patrick Monnerat),
2375  Shortening lines in headers (Patrick Monnerat),
2376  build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall),
2377  build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall),
2378  fix some tabs mixing incompatible with python3 (Daniel Veillard),
2379  add additional defines checks for support "./configure --with-minimum" (Denis Pauk),
2380  Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis),
2381  python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev),
2382  python: Fix compiler warnings when building python3 bindings (Armin K),
2383  Fix for compilation with python 2.6.8 (Petr Sumbera)
2384
2385   - Improvements:
2386  win32/libxml2.def.src after rebuild in doc (Roumen Petrov),
2387  elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov),
2388  elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov),
2389  Provide cmake module (Samuel Martin),
2390  Fix a couple of issues raised by make dist (Daniel Veillard),
2391  Fix and add const qualifiers (Kurt Roeckx),
2392  Preparing for upcoming release of 2.9.2 (Daniel Veillard),
2393  Fix zlib and lzma libraries check via command line (Dmitriy),
2394  wrong error column in structured error when parsing end tag (Juergen Keil),
2395  doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat),
2396  Add methods for python3 iterator (Ron Angeles),
2397  Support element node traversal in document fragments. (Kyle VanderBeek),
2398  xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom),
2399  Added macros for argument casts (Eric Zurcher),
2400  adding init calls to xml and html Read parsing entry points (Daniel Veillard),
2401  Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný),
2402  Implement choice for name classes on attributes (Shaun McCance),
2403  Two small namespace tweaks (Daniel Veillard),
2404  xmllint --memory should fail on empty files (Daniel Veillard),
2405  Cast encoding name to char pointer to match arg type (Nikolay Sivov)
2406
2407   - Cleanups:
2408  Removal of old configure.in (Daniel Veillard),
2409  Unreachable code in tree.c (Gaurav Gupta),
2410  Remove a couple of dead conditions (Gaurav Gupta),
2411  Avoid some dead code and cleanup in relaxng.c (Gaurav),
2412  Drop not needed checks (Denis Pauk),
2413  Fix a wrong test (Daniel Veillard)
2414
2415
2416
24172.9.1: Apr 19 2013:
2418   -  Features:
2419    Support for Python3 (Daniel Veillard),
2420    Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)
2421
2422   -  Documentation:
2423    Add documentation for xmllint --xpath (Daniel Veillard),
2424    Fix the URL of the SAX documentation from James (Daniel Veillard),
2425    Fix spelling of "length". (Michael Wood)
2426
2427   -  Portability:
2428    Fix python bindings with versions older than 2.7 (Daniel Veillard),
2429    rebuild docs:Makefile.am (Roumen Petrov),
2430    elfgcchack.h after rebuild in doc (Roumen Petrov),
2431    elfgcchack for buf module (Roumen Petrov),
2432    Fix a uneeded and wrong extra link parameter (Daniel Veillard),
2433    Few cleanup patches for Windows (Denis Pauk),
2434    Fix rpmbuild --nocheck (Mark Salter),
2435    Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),
2436    Fix Broken multi-arch support in xml2-config (Daniel Veillard),
2437    Fix a portability issue for GCC < 3.4.0 (Daniel Veillard),
2438    Windows build fixes (Daniel Richard),
2439    Fix a thread portability problem (Friedrich Haubensak),
2440    Downgrade autoconf requirement to 2.63 (Daniel Veillard)
2441
2442   -  Bug Fixes:
2443    Fix a linking error for python bindings (Daniel Veillard),
2444    Fix a couple of return without value (Jüri Aedla),
2445    Improve the hashing functions (Daniel Franke),
2446    Improve handling of xmlStopParser() (Daniel Veillard),
2447    Remove risk of lockup in dictionary initialization (Daniel Veillard),
2448    Activate detection of encoding in external subset (Daniel Veillard),
2449    Fix an output buffer flushing conversion bug (Mikhail Titov),
2450    Fix an old bug in xmlSchemaValidateOneElement (Csaba László),
2451    Fix configure cannot remove messages (Gilles Espinasse),
2452    fix schema validation in combination with xsi:nil (Daniel Veillard),
2453    xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),
2454    Fix a few problems with setEntityLoader (Alexey Neyman),
2455    Detect excessive entities expansion upon replacement (Daniel Veillard),
2456    Fix the flushing out of raw buffers on encoding conversions (Daniel,
2457Veillard),
2458    Fix some buffer conversion issues (Daniel Veillard),
2459    When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,
2460Veillard),
2461    Fix an error in the progressive DTD parsing code (Dan Winship),
2462    xmllint should not load DTD by default when using the reader (Daniel,
2463Veillard),
2464    Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),
2465    Fix potential out of bound access (Daniel Veillard),
2466    Fix large parse of file from memory (Daniel Veillard),
2467    Fix a bug in the nsclean option of the parser (Daniel Veillard),
2468    Fix a regression in 2.9.0 breaking validation while streaming (Daniel,
2469Veillard),
2470    Remove potential calls to exit() (Daniel Veillard)
2471
2472   -  Improvements:
2473    Regenerated API, and testapi, rebuild documentation (Daniel Veillard),
2474    Fix tree iterators broken by 2to3 script (Daniel Veillard),
2475    update all tests for Python3 and Python2 (Daniel Veillard),
2476    A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),
2477    Fix compilation on Python3 (Daniel Veillard),
2478    Converting apibuild.py to python3 (Daniel Veillard),
2479    First pass at starting porting to python3 (Daniel Veillard),
2480    updated configure.in for python3 (Daniel Veillard),
2481    Add support for xpathRegisterVariable in Python (Shaun McCance),
2482    Added a regression tests from bug 694228 data (Daniel Veillard),
2483    Cache presence of '<' in entities content (Daniel Veillard),
2484    Avoid extra processing on entities (Daniel Veillard),
2485    Python binding for xmlRegisterInputCallback (Alexey Neyman),
2486    Python bindings: DOM casts everything to xmlNode (Alexey Neyman),
2487    Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),
2488    Adding streaming validation to runtest checks (Daniel Veillard),
2489    Add a --pushsmall option to xmllint (Daniel Veillard)
2490
2491   -  Cleanups:
2492    Switched comment in file to UTF-8 encoding (Daniel Veillard),
2493    Extend gitignore (Daniel Veillard),
2494    Silent the new python test on input (Alexey Neyman),
2495    Cleanup of a duplicate test (Daniel Veillard),
2496    Cleanup on duplicate test expressions (Daniel Veillard),
2497    Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,
2498Gansterer),
2499    Spec cleanups and a fix for multiarch support (Daniel Veillard),
2500    Silence a clang warning (Daniel Veillard),
2501    Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),
2502    rand_seed should be static in dict.c (Wouter Van Rooy),
2503    Fix typos in parser comments (Jan Pokorný)
2504
2505
2506
25072.9.0: Sep 11 2012:
2508   -  Features:
2509    A few new API entry points,
2510    More resilient push parser mode,
2511    A lot of portability improvement,
2512    Faster XPath evaluation
2513
2514   -  Documentation:
2515    xml2-config.1 markup error (Christian Weisgerber),
2516    libxml(3) manpage typo fix (John Bradshaw),
2517    More cleanups to the documentation part of libxml2 (Daniel Richard G)
2518
2519   -  Portability:
2520    Bug 676544 - fails to build with --without-sax1 (Akira TAGOH),
2521    fix builds not having stdint.h (Rob Richards),
2522    GetProcAddressA is available only on WinCE (Daniel Veillard),
2523    More updates and cleanups on autotools and Makefiles (Daniel Richard G),
2524    More changes for Win32 compilation (Eric Zurcher),
2525    Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher),
2526    Bundles all generated files for python into the distribution (Daniel Richard G),
2527    Fix compiler warnings of wincecompat.c (Patrick Gansterer),
2528    Fix non __GNUC__ build (Patrick Gansterer),
2529    Fix windows unicode build (Patrick Gansterer),
2530    clean redefinition of {v}snprintf in C-source (Roumen Petrov),
2531    use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov),
2532    fix runtests to use pthreads support for various Unix platforms (Daniel Richard G),
2533    Various "make distcheck" and portability fixups 2nd part (Daniel Richard G),
2534    Various "make distcheck" and portability fixups (Daniel Richard G),
2535    Fix compilation on older Visual Studio (Daniel Veillard)
2536
2537   -  Bug Fixes:
2538    Change the XPath code to percolate allocation errors (Daniel Veillard),
2539    Fix reuse of xmlInitParser (Daniel Veillard),
2540    Fix potential crash on entities errors (Daniel Veillard),
2541    initialize var (Rob Richards),
2542    Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard),
2543    Fix problem with specific and generic error handlers (Pietro Cerutti),
2544    Avoid a potential infinite recursion (Daniel Veillard),
2545    Fix an XSD error when generating internal automata (Daniel Veillard),
2546    Patch for xinclude of text using multibyte characters (Vitaly Ostanin),
2547    Fix a segfault on XSD validation on pattern error (Daniel Veillard),
2548    Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard),
2549    Add a missing element check (Daniel Veillard),
2550    Adding various checks on node type though the API (Daniel Veillard),
2551    Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard),
2552    Fix make dist to include new private header files (Daniel Veillard),
2553    More fixups on the push parser behaviour (Daniel Veillard),
2554    Strengthen behaviour of the push parser in problematic situations (Daniel Veillard),
2555    Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard),
2556    Fixup limits parser (Daniel Veillard),
2557    Do not fetch external parsed entities (Daniel Veillard),
2558    Fix an error in previous commit (Aron Xu),
2559    Fix entities local buffers size problems (Daniel Veillard),
2560    Fix parser local buffers size problems (Daniel Veillard),
2561    Fix a failure to report xmlreader parsing failures (Daniel Veillard)
2562
2563   -  Improvements:
2564    Keep libxml2.syms when running "make distclean" (Daniel Veillard),
2565    Allow to set the quoting character of an xmlWriter (Csaba Raduly),
2566    Keep non-significant blanks node in HTML parser (Daniel Veillard),
2567    Add a forbidden variable error number and message to XPath (Daniel Veillard),
2568    Support long path names on WNT (Michael Stahl),
2569    Improve HTML escaping of attribute on output (Daniel Veillard),
2570    Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis),
2571    Switching XPath node sorting to Timsort (Vojtech Fried),
2572    Optimizing '//' in XPath expressions (Nick Wellnhofer),
2573    Expose xmlBufShrink in the public tree API (Daniel Veillard),
2574    Visible HTML elements close the head tag (Conrad Irwin),
2575    Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard),
2576    Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard),
2577    minimize use of HAVE_CONFIG_H (Roumen Petrov),
2578    fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov),
2579    Add support for big line numbers in error reporting (Daniel Veillard),
2580    Avoid using xmlBuffer for serialization (Daniel Veillard),
2581    Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard),
2582    Provide new accessors for xmlOutputBuffer (Daniel Veillard),
2583    Improvements for old buffer compatibility (Daniel Veillard),
2584    Expand the limit test program (Daniel Veillard),
2585    Improve error reporting on parser errors (Daniel Veillard),
2586    Implement some default limits in the XPath module (Daniel Veillard),
2587    Introduce some default parser limits (Daniel Veillard),
2588    Cleanups and new limit APIs for dictionaries (Daniel Veillard),
2589    Fixup for buf.c (Daniel Veillard),
2590    Cleanup URI module memory allocation code (Daniel Veillard),
2591    Extend testlimits (Daniel Veillard),
2592    More avoid quadratic behaviour (Daniel Veillard),
2593    Impose a reasonable limit on PI size (Daniel Veillard),
2594    first version of testlimits new test (Daniel Veillard),
2595    Avoid quadratic behaviour in some push parsing cases (Daniel Veillard),
2596    Impose a reasonable limit on comment size (Daniel Veillard),
2597    Impose a reasonable limit on attribute size (Daniel Veillard),
2598    Harden the buffer code and make it more compatible (Daniel Veillard),
2599    More cleanups for input/buffers code (Daniel Veillard),
2600    Cleanup function xmlBufResetInput(), to set input from Buffer (Daniel Veillard)
2601    Switch the test program for characters to new input buffers (Daniel Veillard),
2602    Convert the HTML tree module to the new buffers (Daniel Veillard),
2603    Convert of the HTML parser to new input buffers (Daniel Veillard),
2604    Convert the writer to new output buffer and save APIs (Daniel Veillard),
2605    Convert XMLReader to the new input buffers (Daniel Veillard),
2606    New saving functions using xmlBuf and conversion (Daniel Veillard),
2607    Provide new xmlBuf based saving functions (Daniel Veillard),
2608    Convert XInclude to the new input buffers (Daniel Veillard),
2609    Convert catalog code to the new input buffers (Daniel Veillard),
2610    Convert C14N to the new Input buffer (Daniel Veillard),
2611    Convert xmlIO.c to the new input and output buffers (Daniel Veillard),
2612    Convert XML parser to the new input buffers (Daniel Veillard),
2613    Incompatible change to the Input and Output buffers (Daniel Veillard),
2614    Adding new encoding function to deal with the new structures (Daniel Veillard),
2615    Convert XPath to xmlBuf (Daniel Veillard),
2616    Adding a new buf module for buffers (Daniel Veillard),
2617    Memory error within SAX2 reuse common framework (Daniel Veillard),
2618    Fix xmllint --xpath node initialization (Daniel Veillard)
2619
2620   -  Cleanups:
2621    Various cleanups to avoid compiler warnings (Daniel Veillard),
2622    Big space and tab cleanup (Daniel Veillard),
2623    Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard),
2624    Second round of cleanups for LibXML2 docs/examples (Daniel Richard),
2625    Remove all .cvsignore as they are not used anymore (Daniel Veillard),
2626    Fix a Timsort function helper comment (Daniel Veillard),
2627    Small cleanup for valgrind target (Daniel Veillard),
2628    Patch for portability of latin characters in C files (Daniel Veillard),
2629    Cleanup some of the parser code (Daniel Veillard),
2630    Fix a variable name in comment (Daniel Veillard),
2631    Regenerated testapi.c (Daniel Veillard),
2632    Regenerating docs and API files (Daniel Veillard),
2633    Small cleanup of unused variables in test (Daniel Veillard),
2634    Expand .gitignore with more files (Daniel Veillard)
2635
2636
2637
26382.8.0: May 23 2012:
2639   - Features:
2640  add lzma compression support (Anders F Bjorklund)
2641
2642   - Documentation:
2643    xmlcatalog: Add uri and delegateURI to possible add types in man page. (Ville Skyttä),
2644    Update README.tests (Daniel Veillard),
2645    URI handling code is not OOM resilient (Daniel Veillard),
2646    Fix an error in comment (Daniel Veillard),
2647    Fixed bug #617016 (Daniel Mustieles),
2648    Fixed two typos in the README document (Daniel Neel),
2649    add generated html files (Anders F Bjorklund),
2650    Clarify the need to use xmlFreeNode after xmlUnlinkNode (Daniel Veillard),
2651    Improve documentation a bit (Daniel Veillard),
2652    Updated URL for lxml python bindings (Daniel Veillard)
2653
2654   - Portability:
2655    Restore code for Windows compilation (Daniel Veillard),
2656    Remove git error message during configure (Christian Dywan),
2657    xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY) (Patrick R. Gansterer),
2658    remove a bashism in confgure.in (John Hein),
2659    undef ERROR if already defined (Patrick R. Gansterer),
2660    Fix library problems with mingw-w64 (Michael Cronenworth),
2661    fix windows build. ifdef addition from bug 666491 makes no sense (Rob Richards),
2662    prefer native threads on win32 (Sam Thursfield),
2663    Allow to compile with Visual Studio 2010 (Thomas Lemm),
2664    Fix mingw's snprintf configure check (Andoni Morales),
2665    fixed a 64bit big endian issue (Marcus Meissner),
2666    Fix portability failure if netdb.h lacks NO_ADDRESS (Daniel Veillard),
2667    Fix windows build from lzma addition (Rob Richards),
2668    autogen: Only check for libtoolize (Colin Walters),
2669    Fix the Windows build files (Patrick von Reth),
2670    634846 Remove a linking option breaking Windows VC10 (Daniel Veillard),
2671    599241 fix an initialization problem on Win64 (Andrew W. Nosenko),
2672    fix win build (Rob Richards)
2673
2674   - Bug fixes:
2675    Part for rand_r checking missing (Daniel Veillard),
2676    Cleanup on randomization (Daniel Veillard),
2677    Fix undefined reference in python module (Pacho Ramos),
2678    Fix a race in xmlNewInputStream (Daniel Veillard),
2679    Fix weird streaming RelaxNG errors (Noam),
2680    Fix various bugs in new code raised by the API checking (Daniel Veillard),
2681    Fix various problems with "make dist" (Daniel Veillard),
2682    Fix a memory leak in the xzlib code (Daniel Veillard),
2683    HTML parser error with <noscript> in the <head> (Denis Pauk),
2684    XSD: optional element in complex type extension (Remi Gacogne),
2685    Fix html serialization error and htmlSetMetaEncoding() (Daniel Veillard),
2686    Fix a wrong return value in previous patch (Daniel Veillard),
2687    Fix an uninitialized variable use (Daniel Veillard),
2688    Fix a compilation problem with --minimum (Brandon Slack),
2689    Remove redundant and ungarded include of resolv.h (Daniel Veillard),
2690    xinclude with parse="text" does not use the entity loader (Shaun McCance),
2691    Allow to parse 1 byte HTML files (Denis Pauk),
2692    Patch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag (Martin Schröder),
2693    Avoid memory leak if xmlParserInputBufferCreateIO fails (Lin Yi-Li),
2694    Prevent an infinite loop when dumping a node with encoding problems (Timothy Elliott),
2695    xmlParseNodeInContext problems with an empty document (Tim Elliott),
2696    HTML element position is not detected properly (Pavel Andrejs),
2697    Fix an off by one pointer access (Jüri Aedla),
2698    Try to fix a problem with entities in SAX mode (Daniel Veillard),
2699    Fix a crash with xmllint --path on empty results (Daniel Veillard),
2700    Fixed bug #667946 (Daniel Mustieles),
2701    Fix a logic error in Schemas Component Constraints (Ryan Sleevi),
2702    Fix a wrong enum type use in Schemas Types (Nico Weber),
2703    Fix SAX2 builder in case of undefined attributes namespace (Daniel Veillard),
2704    Fix SAX2 builder in case of undefined element namespaces (Daniel Veillard),
2705    fix reference to STDOUT_FILENO on MSVC (Tay Ray Chuan),
2706    fix a pair of possible out of array char references (Daniel Veillard),
2707    Fix an allocation error when copying entities (Daniel Veillard),
2708    Make sure the parser returns when getting a Stop order (Chris Evans),
2709    Fix some potential problems on reallocation failures(parser.c) (Xia Xinfeng),
2710    Fix a schema type duration comparison overflow (Daniel Veillard),
2711    Fix an unimplemented part in RNG value validation (Daniel Veillard),
2712    Fix missing error status in XPath evaluation (Daniel Veillard),
2713    Hardening of XPath evaluation (Daniel Veillard),
2714    Fix an off by one error in encoding (Daniel Veillard),
2715    Fix RELAX NG include bug #655288 (Shaun McCance),
2716    Fix XSD validation bug #630130 (Toyoda Eizi),
2717    Fix some potential problems on reallocation failures (Chris Evans),
2718    __xmlRaiseError: fix use of the structured callback channel (Dmitry V. Levin),
2719    __xmlRaiseError: fix the structured callback channel's data initialization (Dmitry V. Levin),
2720    Fix memory corruption when xmlParseBalancedChunkMemoryInternal is called from xmlParseBalancedChunk (Rob Richards),
2721    Small fix for previous commit (Daniel Veillard),
2722    Fix a potential freeing error in XPath (Daniel Veillard),
2723    Fix a potential memory access error (Daniel Veillard),
2724    Reactivate the shared library versioning script (Daniel Veillard)
2725
2726   - Improvements:
2727    use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime (Roumen Petrov),
2728    New symbols added for the next release (Daniel Veillard),
2729    xmlTextReader bails too quickly on error (Andy Lutomirski),
2730    Use a hybrid allocation scheme in xmlNodeSetContent (Conrad Irwin),
2731    Use buffers when constructing string node lists. (Conrad Irwin),
2732    Add HTML parser support for HTML5 meta charset encoding declaration (Denis Pauk),
2733    wrong message for double hyphen in comment XML error (Bryan Henderson),
2734    Fix "make tst" to grab lzma lib too (Daniel Veillard),
2735    Add "whereis" command to xmllint shell (Ryan),
2736    Improve xmllint shell (Ryan),
2737    add function xmlTextReaderRelaxNGValidateCtxt() (Noam Postavsky),
2738    Add --system support to autogen.sh (Daniel Veillard),
2739    Add hash randomization to hash and dict structures (Daniel Veillard),
2740    included xzlib in dist (Anders F Bjorklund),
2741    move xz/lzma helpers to separate included files (Anders F Bjorklund),
2742    add generated devhelp files (Anders F Bjorklund),
2743    add XML_WITH_LZMA to api (Anders F Bjorklund),
2744    autogen.sh: Honor NOCONFIGURE environment variable (Colin Walters),
2745    Improve the error report on undefined REFs (Daniel Veillard),
2746    Add exception for new W3C PI xml-model (Daniel Veillard),
2747    Add options to ignore the internal encoding (Daniel Veillard),
2748    testapi: use the right type for the check (Stefan Kost),
2749    various: handle return values of write calls (Stefan Kost),
2750    testWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int (Stefan Kost),
2751    runxmlconf: update to latest testsuite version (Stefan Kost),
2752    configure: add -Wno-long-long to CFLAGS (Stefan Kost),
2753    configure: support silent automake rules if possible (Stefan Kost),
2754    xmlmemory: add a cast as size_t has no portable printf modifier (Stefan Kost),
2755    __xmlRaiseError: remove redundant schannel initialization (Dmitry V. Levin),
2756    __xmlRaiseError: do cheap code check early (Dmitry V. Levin)
2757
2758   - Cleanups:
2759    Cleanups before 2.8.0-rc2 (Daniel Veillard),
2760    Avoid an extra operation (Daniel Veillard),
2761    Remove vestigial de-ANSI-fication support. (Javier Jardón),
2762    autogen.sh: Fix typo (Javier Jardón),
2763    Do not use unsigned but unsigned int (Daniel Veillard),
2764    Remove two references to u_short (Daniel Veillard),
2765    Fix -Wempty-body warning from clang (Nico Weber),
2766    Cleanups of lzma support (Daniel Veillard),
2767    Augment the list of ignored files (Daniel Veillard),
2768    python: remove unused variable (Stefan Kost),
2769    python: flag two unused args (Stefan Kost),
2770    configure: acconfig.h is deprecated since autoconf-2.50 (Stefan Kost),
2771    xpath: remove unused variable (Stefan Kost)
2772
2773
2774
27752.7.8: Nov 4 2010:
2776   -  Features:
2777    480323 add code to plug in ICU converters by default (Giuseppe Iuculano),
2778    Add xmlSaveOption XML_SAVE_WSNONSIG (Adam Spragg)
2779
2780   -  Documentation:
2781    Fix devhelp documentation installation (Mike Hommey),
2782    Fix web site encoding problems (Daniel Veillard),
2783    Fix a couple of typo in HTML parser error messages (Michael Day),
2784    Forgot to update the news page for 0.7.7 (Daniel Veillard)
2785
2786   -  Portability:
2787    607273 Fix python detection on MSys/Windows (LRN),
2788    614087 Fix Socket API usage to allow Windows64 compilation (Ozkan Sezer),
2789    Fix compilation with Clang (Koop Mast),
2790    Fix Win32 build (Rob Richards)
2791
2792   -  Bug Fixes:
2793    595789 fix a remaining potential Solaris problem (Daniel Veillard),
2794    617468 fix progressive HTML parsing with style using "'" (Denis Pauk),
2795    616478 Fix xmllint shell write command (Gwenn Kahz),
2796    614005 Possible erroneous HTML parsing on unterminated script (Pierre Belzile),
2797    627987 Fix XSD IDC errors in imported schemas (Jim Panetta),
2798    629325 XPath rounding errors first cleanup (Phil Shafer),
2799    630140 fix iso995x encoding error (Daniel Veillard),
2800    make sure htmlCtxtReset do reset the disableSAX field (Daniel Veillard),
2801    Fix a change of semantic on XPath preceding and following axis (Daniel Veillard),
2802    Fix a potential segfault due to weak symbols on pthreads (Mike Hommey),
2803    Fix a leak in XPath compilation (Daniel Veillard),
2804    Fix the semantic of XPath axis for namespace/attribute context nodes (Daniel Veillard),
2805    Avoid a descriptor leak in catalog loading code (Carlo Bramini),
2806    Fix a small bug in XPath evaluation code (Marius Wachtler),
2807    Fix handling of XML-1.0 XML namespace declaration (Daniel Veillard),
2808    Fix errors in XSD double validation check (Csaba Raduly),
2809    Fix handling of apos in URIs (Daniel Veillard),
2810    xmlTextReaderReadOuterXml should handle DTD (Rob Richards),
2811    Autogen.sh needs to create m4 directory (Rob Richards)
2812
2813   -  Improvements:
2814    606592 update language ID parser to RFC 5646 (Daniel Veillard),
2815    Sort python generated stubs (Mike Hommey),
2816    Add an HTML parser option to avoid a default doctype (Daniel Veillard)
2817
2818   -  Cleanups:
2819    618831 don't ship generated files in git (Adrian Bunk),
2820    Switch from the obsolete mkinstalldirs to AC_PROG_MKDIR_P (Adrian Bunk),
2821    Various cleanups on encoding handling (Daniel Veillard),
2822    Fix xmllint to use format=1 for default formatting (Adam Spragg),
2823    Force _xmlSaveCtxt.format to be 0 or 1 (Adam Spragg),
2824    Cleanup encoding pointer comparison (Nikolay Sivov),
2825    Small code cleanup on previous patch (Daniel Veillard)
2826
2827
2828
28292.7.7: Mar 15 2010:
2830   -  Improvements:
2831    Adding a --xpath option to xmllint (Daniel Veillard),
2832    Make HTML parser non-recursive (Eugene Pimenov)
2833
2834   -  Portability:
2835    relaxng.c: cast to allow compilation with sun studio 11 (Ben Walton),
2836    Fix build failure on Sparc solaris (Roumen Petrov),
2837    use autoreconf in autogen.sh (Daniel Veillard),
2838    Fix build with mingw (Roumen Petrov),
2839    Upgrade some of the configure and autogen (Daniel Veillard),
2840    Fix relaxNG tests in runtest for Windows runtest.c: initialize ret (Rob Richards),
2841    Fix a const warning in xmlNodeSetBase (Martin Trappel),
2842    Fix python generator to not use deprecated xmllib (Daniel Veillard),
2843    Update some automake files (Daniel Veillard),
2844    598785 Fix nanohttp on Windows (spadix)
2845
2846   -  Bug Fixes:
2847    libxml violates the zlib interface and crashes (Mark Adler),
2848    Fix broken escape behaviour in regexp ranges (Daniel Veillard),
2849    Fix  missing win32 libraries in libxml-2.0.pc (Volker Grabsch),
2850    Fix detection of python linker flags (Daniel Macks),
2851    fix build error in libxml2/python (Paul Smith),
2852    ChunkParser: Incorrect decoding of small xml files (Raul Hudea),
2853    htmlCheckEncoding doesn't update input-end after shrink (Eugene Pimenov),
2854    Fix a missing #ifdef (Daniel Veillard),
2855    Fix encoding selection for xmlParseInNodeContext (Daniel Veillard),
2856    xmlPreviousElementSibling mistake (François Delyon),
2857    608773 add a missing check in xmlGROW (Daniel Veillard),
2858    Fix xmlParseInNodeContext for HTML content (Daniel Veillard),
2859    Fix lost namespace when copying node * tree.c: reconcile namespace if not found (Rob Richards),
2860    Fix some missing commas in HTML element lists (Eugene Pimenov),
2861    Correct variable type to unsigned (Nikolay Sivov),
2862    Recognize ID attribute in HTML without DOCTYPE (Daniel Veillard),
2863    Fix memory leak in xmlXPathEvalExpression() (Martin),
2864    Fix an init bug in global.c (Kai Henning),
2865    Fix xmlNodeSetBase() comment (Daniel Veillard),
2866    Fix broken escape behaviour in regexp ranges (Daniel Veillard),
2867    Don't give default HTML boolean attribute values in parser (Daniel Veillard),
2868    xmlCtxtResetLastError should reset ctxt-errNo (Daniel Veillard)
2869
2870   -  Cleanups:
2871    Cleanup a couple of weirdness in HTML parser (Eugene Pimenov)
2872
2873
2874
28752.7.6: Oct  6 2009:
2876   -  Bug Fixes:
2877     Restore thread support in default configuration (Andrew W. Nosenko),
2878     URI with no path parsing problem (Daniel Veillard),
2879     Minor patch for conditional defines in threads.c (Eric Zurcher)
2880
2881
2882
28832.7.5: Sep 24 2009:
2884   -  Bug Fixes:
2885    Restore behavior of --with-threads without argument (Andrew W. Nosenko),
2886    Fix memory leak when doc is NULL (Rob Richards),
2887    595792 fixing a RelaxNG bug introduced in 2.7.4 (Daniel Veillard),
2888    Fix a Relaxng bug raised by libvirt test suite (Daniel Veillard),
2889    Fix a parsing problem with little data at startup (Daniel Veillard),
2890    link python module with python library (Frederic Crozat),
2891    594874 Forgot an fclose in xmllint (Daniel Veillard)
2892
2893   -  Cleanup:
2894    Adding symbols.xml to EXTRA_DIST (Daniel Veillard)
2895
2896
2897
28982.7.4: Sep 10 2009:
2899   - Improvements:
2900    Switch to GIT (GNOME),
2901    Add symbol versioning to libxml2 shared libs (Daniel Veillard)
2902
2903   - Portability:
2904    593857 try to work around thread pbm MinGW 4.4 (Daniel Veillard),
2905    594250 rename ATTRIBUTE_ALLOC_SIZE to avoid clashes (Daniel Veillard),
2906    Fix Windows build * relaxng.c: fix windows build (Rob Richards),
2907    Fix the globals.h to use XMLPUBFUN (Paul Smith),
2908    Problem with extern extern in header (Daniel Veillard),
2909    Add -lnetwork for compiling on Haiku (Scott McCreary),
2910    Runtest portability patch for Solaris (Tim Rice),
2911    Small patch to accommodate the Haiku OS (Scott McCreary),
2912    584605 package VxWorks folder in the distribution (Daniel Veillard),
2913    574017 Realloc too expensive on most platform (Daniel Veillard),
2914    Fix windows build (Rob Richards),
2915    545579 doesn't compile without schema support (Daniel Veillard),
2916    xmllint use xmlGetNodePath when not compiled in (Daniel Veillard),
2917    Try to avoid __imp__xmlFree link trouble on msys (Daniel Veillard),
2918    Allow to select the threading system on Windows (LRN),
2919    Fix Solaris binary links, cleanups (Daniel Veillard),
2920    Bug 571059 – MSVC doesn't work with the bakefile (Intron),
2921    fix ATTRIBUTE_PRINTF header clash (Belgabor and Mike Hommey),
2922    fixes for Borland/CodeGear/Embarcadero compilers (Eric Zurcher)
2923
2924   - Documentation:
2925    544910 typo: "renciliateNs" (Leonid Evdokimov),
2926    Add VxWorks to list of OSes (Daniel Veillard),
2927    Regenerate the documentation and update for git (Daniel Veillard),
2928    560524 ¿ xmlTextReaderLocalName description (Daniel Veillard),
2929    Added sponsoring by AOE media for the server (Daniel Veillard),
2930    updated URLs for GNOME (Vincent Lefevre),
2931    more warnings about xmlCleanupThreads and xmlCleanupParser (Daniel Veillard)
2932
2933   - Bug fixes:
2934    594514 memory leaks - duplicate initialization (MOD),
2935    Wrong block opening in htmlNodeDumpOutputInternal (Daniel Veillard),
2936    492317 Fix  Relax-NG validation problems (Daniel Veillard),
2937    558452 fight with reg test and error report (Daniel Veillard),
2938    558452 RNG compilation of optional multiple child (Daniel Veillard),
2939    579746 XSD validation not correct / nilable groups (Daniel Veillard),
2940    502960 provide namespace stack when parsing entity (Daniel Veillard),
2941    566012 part 2 fix regression tests and push mode (Daniel Veillard),
2942    566012 autodetected encoding and encoding conflict (Daniel Veillard),
2943    584220 xpointer(/) and xinclude problems (Daniel Veillard),
2944    587663 Incorrect Attribute-Value Normalization (Daniel Veillard),
2945    444994 HTML chunked failure for attribute with <> (Daniel Veillard),
2946    Fix end of buffer char being split in XML parser (Daniel Veillard),
2947    Non ASCII character may be split at buffer end (Adiel Mittmann),
2948    440226 Add xmlXIncludeProcessTreeFlagsData API (Stefan Behnel),
2949    572129 speed up parsing of large HTML text nodes (Markus Kull),
2950    Fix HTML parsing with 0 character in CDATA (Daniel Veillard),
2951    Fix SetGenericErrorFunc and SetStructured clash (Wang Lam),
2952    566012  Incomplete EBCDIC parsing support (Martin Kogler),
2953    541335 HTML avoid creating 2 head or 2 body element (Daniel Veillard),
2954    541237 error correcting missing end tags in HTML (Daniel Veillard),
2955    583439 missing line numbers in push mode (Daniel Veillard),
2956    587867 xmllint --html --xmlout serializing as HTML (Daniel Veillard),
2957    559501 avoid select and use poll for nanohttp (Raphael Prevost),
2958    559410 -  Regexp bug on (...)? constructs (Daniel Veillard),
2959    Fix a small problem on previous HTML parser patch (Daniel Veillard),
2960    592430 -  HTML parser runs into endless loop (Daniel Veillard),
2961    447899 potential double free in xmlFreeTextReader (Daniel Veillard),
2962    446613 small validation bug mixed content with NS (Daniel Veillard),
2963    Fix the problem of revalidating a doc with RNG (Daniel Veillard),
2964    Fix xmlKeepBlanksDefault to not break indent (Nick Wellnhofer),
2965    512131 refs from externalRef part need to be added (Daniel Veillard),
2966    512131 crash in xmlRelaxNGValidateFullElement (Daniel Veillard),
2967    588441 allow '.' in HTML Names even if invalid (Daniel Veillard),
2968    582913 Fix htmlSetMetaEncoding() to be nicer (Daniel Veillard),
2969    579317 Try to find the HTML encoding information (Daniel Veillard),
2970    575875 don't output charset=html (Daniel Veillard),
2971    571271 fix semantic of xsd:all with minOccurs=0 (Daniel Veillard),
2972    570702 fix a bug in regexp determinism checking (Daniel Veillard),
2973    567619 xmlValidateNotationUse missing param test (Daniel Veillard),
2974    574393 ¿ utf-8 filename magic for compressed files (Hans Breuer),
2975    Fix a couple of problems in the parser (Daniel Veillard),
2976    585505 ¿ Document ids and refs populated by XSD (Wayne Jensen),
2977    582906 XSD validating multiple imports of the same schema (Jason Childs),
2978    Bug 582887 ¿ problems validating complex schemas (Jason Childs),
2979    Bug 579729 ¿ fix XSD schemas parsing crash (Miroslav Bajtos),
2980    576368 ¿ htmlChunkParser with special attributes (Jiri Netolicky),
2981    Bug 565747 ¿ relax anyURI data character checking (Vincent Lefevre),
2982    Preserve attributes of include start on tree copy (Petr Pajas),
2983    Skip silently unrecognized XPointer schemes (Jakub Wilk),
2984    Fix leak on SAX1, xmllint --sax1 option and debug (Daniel Veillard),
2985    potential NULL dereference on non-glibc (Jim Meyering),
2986    Fix an XSD validation crash (Daniel Veillard),
2987    Fix a regression in streaming entities support (Daniel Veillard),
2988    Fix a couple of ABI issues with C14N 1.1 (Aleksey Sanin),
2989    Aleksey Sanin support for c14n 1.1 (Aleksey Sanin),
2990    reader bug fix with entities (Daniel Veillard),
2991    use options from current parser ctxt for external entities (Rob Richards),
2992    581612 use %s to printf strings (Christian Persch),
2993    584605 change the threading initialization sequence (Igor Novoseltsev),
2994    580705 keep line numbers in HTML parser (Aaron Patterson),
2995    581803 broken HTML table attributes init (Roland Steiner),
2996    do not set error code in xmlNsWarn (Rob Richards),
2997    564217 fix structured error handling problems,
2998    reuse options from current parser for entities (Rob Richards),
2999    xmlXPathRegisterNs should not allow enpty prefixes (Daniel Veillard),
3000    add a missing check in xmlAddSibling (Kris Breuker),
3001    avoid leaks on errors (Jinmei Tatuya)
3002
3003   - Cleanup:
3004    Chasing dead assignments reported by clang-scan (Daniel Veillard),
3005    A few more safety cleanup raised by scan (Daniel Veillard),
3006    Fixing assorted potential problems raised by scan (Daniel Veillard),
3007    Potential uninitialized arguments raised by scan (Daniel Veillard),
3008    Fix a bunch of scan 'dead increments' and cleanup (Daniel Veillard),
3009    Remove a pedantic warning (Daniel Veillard),
3010    555833 always use rm -f in uninstall-local (Daniel Veillard),
3011    542394 xmlRegisterOutputCallbacks MAX_INPUT_CALLBACK (Daniel Veillard),
3012    Autoregenerate libxml2.syms automated checkings (Daniel Veillard),
3013    Make xmlRecoverDoc const (Martin Trappel) (Daniel Veillard),
3014    Both args of xmlStrcasestr are const (Daniel Veillard),
3015    hide the nbParse* variables used for debugging (Mike Hommey),
3016    570806 changed include of config.h (William M. Brack),
3017    cleanups and error reports when xmlTextWriterVSprintf fails (Jinmei Tatuya)
3018
3019
3020
30212.7.3: Jan 18 2009:
3022   - Build fix: fix build when HTML support is not included.
3023   - Bug fixes: avoid memory overflow in gigantic text nodes,
3024      indentation problem on the writed (Rob Richards),
3025      xmlAddChildList pointer problem (Rob Richards and Kevin Milburn),
3026      xmlAddChild problem with attribute (Rob Richards and Kris Breuker),
3027      avoid a memory leak in an edge case (Daniel Zimmermann),
3028      deallocate some pthread data (Alex Ott).
3029   - Improvements: configure option to avoid rebuilding docs (Adrian Bunk),
3030      limit text nodes to 10MB max by default, add element traversal
3031      APIs, add a parser option to enable pre 2.7 SAX behavior (Rob Richards),
3032      add gcc malloc checking (Marcus Meissner), add gcc printf like functions
3033      parameters checking (Marcus Meissner).
3034
3035
30362.7.2: Oct 3 2008:
3037   - Portability fix: fix solaris compilation problem, fix compilation
3038        if XPath is not configured in
3039   - Bug fixes: nasty entity bug introduced in 2.7.0, restore old behaviour
3040        when saving an HTML doc with an xml dump function, HTML UTF-8 parsing
3041        bug, fix reader custom error handlers (Riccardo Scussat)
3042
3043   - Improvement: xmlSave options for more flexibility to save as
3044        XML/HTML/XHTML, handle leading BOM in HTML documents
3045
3046
30472.7.1: Sep 1 2008:
3048   - Portability fix: Borland C fix (Moritz Both)
3049   - Bug fixes: python serialization wrappers, XPath QName corner
3050        case handking and leaks (Martin)
3051   - Improvement: extend the xmlSave to handle HTML documents and trees
3052   - Cleanup: python serialization wrappers
3053
3054
30552.7.0: Aug 30 2008:
3056   - Documentation: switch ChangeLog to UTF-8, improve mutithreads and
3057      xmlParserCleanup docs
3058   - Portability fixes: Older Win32 platforms (Rob Richards), MSVC
3059      porting fix (Rob Richards), Mac OS X regression tests (Sven Herzberg),
3060      non GNUCC builds (Rob Richards), compilation on Haiku (Andreas Färber)
3061
3062   - Bug fixes: various realloc problems (Ashwin), potential double-free
3063      (Ashwin), regexp crash, icrash with invalid whitespace facets (Rob
3064      Richards), pattern fix when streaming (William Brack), various XML
3065      parsing and validation fixes based on the W3C regression tests, reader
3066      tree skipping function fix (Ashwin), Schemas regexps escaping fix
3067      (Volker Grabsch), handling of entity push errors (Ashwin), fix a slowdown
3068      when encoder can't serialize characters on output
3069   - Code cleanup: compilation fix without the reader, without the output
3070      (Robert Schwebel), python whitespace (Martin), many space/tabs cleanups,
3071      serious cleanup of the entity handling code
3072   - Improvement: switch parser to XML-1.0 5th edition, add parsing flags
3073      for old versions, switch URI parsing to RFC 3986,
3074      add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
3075      new hashing functions for dictionaries (based on Stefan Behnel work),
3076      improve handling of misplaced html/head/body in HTML parser, better
3077      regression test tools and code coverage display, better algorithms
3078      to detect various versions of the billion laughts attacks, make
3079      arbitrary parser limits avoidable as a parser option
3080
3081
30822.6.32: Apr 8 2008:
3083   - Documentation: returning heap memory to kernel (Wolfram Sang),
3084      trying to clarify xmlCleanupParser() use, xmlXPathContext improvement
3085      (Jack Jansen), improve the *Recover* functions documentation,
3086      XmlNodeType doc link fix (Martijn Arts)
3087   - Bug fixes: internal subset memory leak (Ashwin), avoid problem with
3088      paths starting with // (Petr Sumbera), streaming XSD validation callback
3089      patches (Ashwin), fix redirection on port other than 80 (William Brack),
3090      SAX2 leak (Ashwin), XInclude fragment of own document (Chris Ryan),
3091      regexp bug with '.' (Andrew Tosh), flush the writer at the end of the
3092      document (Alfred Mickautsch), output I/O bug fix (William Brack),
3093      writer CDATA output after a text node (Alex Khesin), UTF-16 encoding
3094      detection (William Brack), fix handling of empty CDATA nodes for Safari
3095      team, python binding problem with namespace nodes, improve HTML parsing
3096      (Arnold Hendriks), regexp automata build bug, memory leak fix (Vasily
3097      Chekalkin), XSD test crash, weird system parameter entity parsing problem,
3098      allow save to file:///X:/ windows paths, various attribute normalisation
3099      problems, externalSubsetSplit fix (Ashwin), attribute redefinition in
3100      the DTD (Ashwin), fix in char ref parsing check (Alex Khesin), many
3101      out of memory handling fixes (Ashwin), XPath out of memory handling fixes
3102      (Alvaro Herrera), various realloc problems (Ashwin), UCS4 encoding
3103      conversion buffer size (Christian Fruth), problems with EatName
3104      functions on memory errors, BOM handling in external parsed entities
3105      (Mark Rowe)
3106   - Code cleanup: fix build under VS 2008 (David Wimsey), remove useless
3107      mutex in xmlDict (Florent Guilian), Mingw32 compilation fix (Carlo
3108      Bramini), Win and MacOS EOL cleanups (Florent Guiliani), iconv need
3109      a const detection (Roumen Petrov), simplify xmlSetProp (Julien Charbon),
3110      cross compilation fixes for Mingw (Roumen Petrov), SCO Openserver build
3111      fix (Florent Guiliani), iconv uses const on Win32 (Rob Richards),
3112      duplicate code removal (Ashwin), missing malloc test and error reports
3113      (Ashwin), VMS makefile fix (Tycho Hilhorst)
3114   - improvements: better plug of schematron in the normal error handling
3115      (Tobias Minich)
3116
3117
31182.6.31: Jan 11 2008:
3119   - Security fix: missing of checks in UTF-8 parsing
3120   - Bug fixes: regexp bug, dump attribute from XHTML document, fix
3121      xmlFree(NULL) to not crash in debug mode, Schematron parsing crash
3122      (Rob Richards), global lock free on Windows (Marc-Antoine Ruel),
3123      XSD crash due to double free (Rob Richards), indentation fix in
3124      xmlTextWriterFullEndElement (Felipe Pena), error in attribute type
3125      parsing if attribute redeclared, avoid crash in hash list scanner if
3126      deleting elements, column counter bug fix (Christian Schmidt),
3127      HTML embed element saving fix (Stefan Behnel), avoid -L/usr/lib
3128      output from xml2-config (Fred Crozat), avoid an xmllint crash
3129      (Stefan Kost), don't stop HTML parsing on out of range chars.
3130
3131   - Code cleanup: fix open() call third argument, regexp cut'n paste
3132      copy error, unused variable in __xmlGlobalInitMutexLock (Hannes Eder),
3133      some make distcheck related fixes (John Carr)
3134   - Improvements: HTTP Header: includes port number (William Brack),
3135      testURI --debug option,
3136
3137
31382.6.30: Aug 23 2007:
3139   - Portability: Solaris crash on error handling, windows path fixes
3140      (Roland Schwarz and Rob Richards), mingw build (Roland Schwarz)
3141   - Bugfixes: xmlXPathNodeSetSort problem (William Brack), leak when
3142      reusing a writer for a new document (Dodji Seketeli), Schemas
3143      xsi:nil handling patch (Frank Gross), relative URI build problem
3144      (Patrik Fimml), crash in xmlDocFormatDump, invalid char in comment
3145      detection bug, fix disparity with xmlSAXUserParseMemory, automata
3146      generation for complex regexp counts problems, Schemas IDC import
3147      problems (Frank Gross), xpath predicate evailation error handling
3148      (William Brack)
3149
3150
31512.6.29: Jun 12 2007:
3152   - Portability: patches from Andreas Stricke for WinCEi,
3153      fix compilation warnings (William Brack), avoid warnings on Apple OS/X
3154      (Wendy Doyle and Mark Rowe), Windows compilation and threading
3155      improvements (Rob Richards), compilation against old Python versions,
3156      new GNU tar changes (Ryan Hill)
3157   - Documentation: xmlURIUnescapeString comment,
3158   - Bugfixes: xmlBufferAdd problem (Richard Jones), 'make valgrind'
3159      flag fix (Richard Jones), regexp interpretation of \,
3160      htmlCreateDocParserCtxt (Jean-Daniel Dupas), configure.in
3161      typo (Bjorn Reese), entity content failure, xmlListAppend() fix
3162      (Georges-André Silber), XPath number serialization (William Brack),
3163      nanohttp gzipped stream fix (William Brack and Alex Cornejo),
3164      xmlCharEncFirstLine typo (Mark Rowe), uri bug (François Delyon),
3165      XPath string value of PI nodes (William Brack), XPath node set
3166      sorting bugs (William Brack), avoid outputting namespace decl
3167      dups in the writer (Rob Richards), xmlCtxtReset bug, UTF-8 encoding
3168      error handling, recustion on next in catalogs, fix a Relax-NG crash,
3169      workaround wrong file: URIs, htmlNodeDumpFormatOutput on attributes,
3170      invalid character in attribute detection bug, big comments before
3171      internal subset streaming bug, HTML parsing of attributes with : in
3172      the name, IDness of name in HTML (Dagfinn I. Mannsåker)
3173   - Improvement: keep URI query parts in raw form (Richard Jones),
3174      embed tag support in HTML (Michael Day)
3175
3176
31772.6.28: Apr 17 2007:
3178   - Documentation: comment fixes (Markus Keim), xpath comments fixes too
3179      (James Dennett)
3180   - Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
3181      (Usamah Malik), various regexp bug fixes (DV and William), path conversion
3182      on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
3183      principal node of axis bug, HTML serialization of some codepoint
3184      (Steven Rainwater), user data propagation in XInclude (Michael Day),
3185      standalone and XML decl detection (Michael Day), Python id output
3186      for some id, fix the big python string memory leak, URI parsing fixes
3187      (Stéphane Bidoul and William), long comments parsing bug (William),
3188      concurrent threads initialization (Ted Phelps), invalid char
3189      in text XInclude (William), XPath memory leak (William), tab in
3190      python problems (Andreas Hanke), XPath node comparison error
3191      (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
3192      XML Schemas attribute group (William), HTML parsing problem (William),
3193      fix char 0x2d in regexps (William), regexp quantifier range with
3194      min occurs of 0 (William), HTML script/style parsing (Mike Day)
3195   - Improvement: make xmlTextReaderSetup() public
3196   - Compilation and postability: fix a missing include problem (William),
3197      __ss_family on AIX again (Björn Wiberg), compilation without zlib
3198      (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
3199      Windows CE fixes (Andreas Stricke)
3200   - Various CVS to SVN infrastructure changes
3201
3202
32032.6.27: Oct 25 2006:
3204   - Portability fixes: file names on windows (Roland Schwingel,
3205      Emelyanov Alexey), windows compile fixup (Rob Richards),
3206      AIX iconv() is apparently case sensitive
3207   - improvements: Python XPath types mapping (Nic Ferrier), XPath optimization
3208      (Kasimier), add xmlXPathCompiledEvalToBoolean (Kasimier), Python node
3209      equality and comparison (Andreas Pakulat), xmlXPathCollectAndTest
3210      improvememt (Kasimier), expose if library was compiled with zlib
3211      support (Andrew Nosenko), cache for xmlSchemaIDCMatcher structs
3212      (Kasimier), xmlTextConcat should work with comments and PIs (Rob
3213      Richards), export htmlNewParserCtxt needed by Michael Day, refactoring
3214      of catalog entity loaders (Michael Day), add XPointer support to
3215      python bindings (Ross Reedstrom, Brian West and Stefan Anca),
3216      try to sort out most file path to URI conversions and xmlPathToUri,
3217      add --html --memory case to xmllint
3218   - building fix: fix --with-minimum (Felipe Contreras), VMS fix,
3219      const'ification of HTML parser structures (Matthias Clasen),
3220      portability fix (Emelyanov Alexey), wget autodetection (Peter
3221      Breitenlohner),  remove the build path recorded in the python
3222      shared module, separate library flags for shared and static builds
3223      (Mikhail Zabaluev), fix --with-minimum --with-sax1 builds, fix
3224      --with-minimum --with-schemas builds
3225   - bug fix: xmlGetNodePath fix (Kasimier), xmlDOMWrapAdoptNode and
3226      attribute (Kasimier), crash when using the recover mode,
3227      xmlXPathEvalExpr problem (Kasimier), xmlXPathCompExprAdd bug (Kasimier),
3228      missing destroy in xmlFreeRMutex (Andrew Nosenko), XML Schemas fixes
3229      (Kasimier), warning on entities processing, XHTML script and style
3230      serialization (Kasimier), python generator for long types, bug in
3231      xmlSchemaClearValidCtxt (Bertrand Fritsch), xmlSchemaXPathEvaluate
3232      allocation bug (Marton Illes), error message end of line (Rob Richards),
3233      fix attribute serialization in writer (Rob Richards), PHP4 DTD validation
3234      crash, parser safety patch (Ben Darnell), _private context propagation
3235      when parsing entities (with Michael Day), fix entities behaviour when
3236      using SAX, URI to file path fix (Mikhail Zabaluev), disappearing validity
3237      context, arg error in SAX callback (Mike Hommey), fix mixed-content
3238      autodetect when using --noblanks, fix xmlIOParseDTD error handling,
3239      fix bug in xmlSplitQName on special Names, fix Relax-NG element content
3240      validation bug, fix xmlReconciliateNs bug, fix potential attribute
3241      XML parsing bug, fix line/column accounting in XML parser, chunking bug
3242      in the HTML parser on script, try to detect obviously buggy HTML
3243      meta encoding indications, bugs with encoding BOM and xmlSaveDoc,
3244      HTML entities in attributes parsing, HTML minimized attribute values,
3245      htmlReadDoc and htmlReadIO were broken, error handling bug in
3246      xmlXPathEvalExpression (Olaf Walkowiak), fix a problem in
3247      htmlCtxtUseOptions, xmlNewInputFromFile could leak (Marius Konitzer),
3248      bug on misformed SSD regexps (Christopher Boumenot)
3249
3250   - documentation: warning about XML_PARSE_COMPACT (Kasimier Buchcik),
3251      fix xmlXPathCastToString documentation, improve man pages for
3252      xmllitn and xmlcatalog (Daniel Leidert), fixed comments of a few
3253      functions
3254
3255
32562.6.26: Jun 6 2006:
3257   - portability fixes: Python detection (Joseph Sacco), compilation
3258    error(William Brack and Graham Bennett), LynxOS patch (Olli Savia)
3259   - bug fixes: encoding buffer problem, mix of code and data in
3260    xmlIO.c(Kjartan Maraas), entities in XSD validation (Kasimier Buchcik),
3261    variousXSD validation fixes (Kasimier), memory leak in pattern (Rob
3262    Richards andKasimier), attribute with colon in name (Rob Richards), XPath
3263    leak inerror reporting (Aleksey Sanin), XInclude text include of
3264    selfdocument.
3265   - improvements: Xpath optimizations (Kasimier), XPath object
3266    cache(Kasimier)
3267
3268
32692.6.25: Jun 6 2006::
3270Do not use or package 2.6.25
32712.6.24: Apr 28 2006:
3272   - Portability fixes: configure on Windows, testapi compile on windows
3273      (Kasimier Buchcik, venkat naidu), Borland C++ 6 compile (Eric Zurcher),
3274      HP-UX compiler workaround (Rick Jones), xml2-config bugfix, gcc-4.1
3275      cleanups, Python detection scheme (Joseph Sacco), UTF-8 file paths on
3276      Windows (Roland Schwingel).
3277
3278   - Improvements: xmlDOMWrapReconcileNamespaces xmlDOMWrapCloneNode (Kasimier
3279      Buchcik), XML catalog debugging (Rick Jones), update to Unicode 4.01.
3280   - Bug fixes: xmlParseChunk() problem in 2.6.23, xmlParseInNodeContext()
3281      on HTML docs, URI behaviour on Windows (Rob Richards), comment streaming
3282      bug, xmlParseComment (with William Brack), regexp bug fixes (DV &
3283      Youri Golovanov), xmlGetNodePath on text/CDATA (Kasimier),
3284      one Relax-NG interleave bug, xmllint --path and --valid,
3285      XSD bugfixes (Kasimier), remove debug
3286      left in Python bindings (Nic Ferrier), xmlCatalogAdd bug (Martin Cole),
3287      xmlSetProp fixes (Rob Richards), HTML IDness (Rob Richards), a large
3288      number of cleanups and small fixes based on Coverity reports, bug
3289      in character ranges, Unicode tables const (Aivars Kalvans), schemas
3290      fix (Stefan Kost), xmlRelaxNGParse error deallocation,
3291      xmlSchemaAddSchemaDoc error deallocation, error handling on unallowed
3292      code point, ixmllint --nonet to never reach the net (Gary Coady),
3293      line break in writer after end PI (Jason Viers).
3294   - Documentation: man pages updates and cleanups (Daniel Leidert).
3295   - New features: Relax NG structure error handlers.
3296
3297
32982.6.23: Jan 5 2006:
3299   - portability fixes: Windows (Rob Richards), getaddrinfo on Windows
3300    (Kolja Nowak, Rob Richards), icc warnings (Kjartan Maraas),
3301    --with-minimum compilation fixes (William Brack), error case handling fix
3302    on Solaris (Albert Chin), don't use 'list' as parameter name reported by
3303    Samuel Diaz Garcia, more old Unices portability fixes (Albert Chin),
3304    MinGW compilation (Mark Junker), HP-UX compiler warnings (Rick
3305  Jones),
3306   - code cleanup: xmlReportError (Adrian Mouat), remove xmlBufferClose
3307    (Geert Jansen), unreachable code (Oleksandr Kononenko), refactoring
3308    parsing code (Bjorn Reese)
3309   - bug fixes: xmlBuildRelativeURI and empty path (William Brack),
3310    combinatory explosion and performances in regexp code, leak in
3311    xmlTextReaderReadString(), xmlStringLenDecodeEntities problem (Massimo
3312    Morara), Identity Constraints bugs and a segfault (Kasimier Buchcik),
3313    XPath pattern based evaluation bugs (DV & Kasimier),
3314    xmlSchemaContentModelDump() memory leak (Kasimier), potential leak in
3315    xmlSchemaCheckCSelectorXPath(), xmlTextWriterVSprintf() misuse of
3316    vsnprintf (William Brack), XHTML serialization fix (Rob Richards), CRLF
3317    split problem (William), issues with non-namespaced attributes in
3318    xmlAddChild() xmlAddNextSibling() and xmlAddPrevSibling() (Rob Richards),
3319    HTML parsing of script, Python must not output to stdout (Nic Ferrier),
3320    exclusive C14N namespace visibility (Aleksey Sanin), XSD datatype
3321    totalDigits bug (Kasimier Buchcik), error handling when writing to an
3322    xmlBuffer (Rob Richards), runtest schemas error not reported (Hisashi
3323    Fujinaka), signed/unsigned problem in date/time code (Albert Chin), fix
3324    XSI driven XSD validation (Kasimier), parsing of xs:decimal (Kasimier),
3325    fix DTD writer output (Rob Richards), leak in xmlTextReaderReadInnerXml
3326    (Gary Coady), regexp bug affecting schemas (Kasimier), configuration of
3327    runtime debugging (Kasimier), xmlNodeBufGetContent bug on entity refs
3328    (Oleksandr Kononenko), xmlRegExecPushString2 bug (Sreeni Nair),
3329    compilation and build fixes (Michael Day), removed dependencies on
3330    xmlSchemaValidError (Kasimier), bug with <xml:foo/>, more XPath
3331    pattern based evaluation fixes (Kasimier)
3332   - improvements: XSD Schemas redefinitions/restrictions (Kasimier
3333    Buchcik), node copy checks and fix for attribute (Rob Richards), counted
3334    transition bug in regexps, ctxt->standalone = -2 to indicate no
3335    standalone attribute was found, add xmlSchemaSetParserStructuredErrors()
3336    (Kasimier Buchcik), add xmlTextReaderSchemaValidateCtxt() to API
3337    (Kasimier), handle gzipped HTTP resources (Gary Coady), add
3338    htmlDocDumpMemoryFormat. (Rob Richards),
3339   - documentation: typo (Michael Day), libxml man page (Albert Chin), save
3340    function to XML buffer (Geert Jansen), small doc fix (Aron Stansvik),
3341
3342
33432.6.22: Sep 12 2005:
3344   - build fixes: compile without schematron (Stéphane Bidoul)
3345   - bug fixes: xmlDebugDumpNode on namespace node (Oleg Paraschenko)i,
3346    CDATA push parser bug, xmlElemDump problem with XHTML1 doc,
3347    XML_FEATURE_xxx clash with expat headers renamed XML_WITH_xxx, fix some
3348    output formatting for meta element (Rob Richards), script and style
3349    XHTML1 serialization (David Madore), Attribute derivation fixups in XSD
3350    (Kasimier Buchcik), better IDC error reports (Kasimier Buchcik)
3351   - improvements: add XML_SAVE_NO_EMPTY xmlSaveOption (Rob Richards), add
3352    XML_SAVE_NO_XHTML xmlSaveOption, XML Schemas improvements preparing for
3353    derive (Kasimier Buchcik).
3354   - documentation: generation of gtk-doc like docs, integration with
3355    devhelp.
3356
3357
33582.6.21: Sep 4 2005:
3359   - build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
3360    convention problems on Windows (Marcus Boerger), cleanups based on Linus'
3361    sparse tool, update of win32/configure.js (Rob Richards), remove warnings
3362    on Windows(Marcus Boerger), compilation without SAX1, detection of the
3363    Python binary, use $GCC inestad of $CC = 'gcc' (Andrew W. Nosenko),
3364    compilation/link with threads and old gcc, compile problem by C370 on
3365    Z/OS,
3366   - bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
3367    bug (Jiri Netolicky), XPath NaN compare bug (William Brack),
3368    htmlParseScript potential bug, Schemas regexp handling of spaces, Base64
3369    Schemas comparisons NIST passes, automata build error xsd:all,
3370    xmlGetNodePath for namespaced attributes (Alexander Pohoyda), xmlSchemas
3371    foreign namespaces handling, XML Schemas facet comparison (Kupriyanov
3372    Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier Buchcik), xml:
3373    namespace ahndling in Schemas (Kasimier), empty model group in Schemas
3374    (Kasimier), wildcard in Schemas (Kasimier), URI composition (William),
3375    xs:anyType in Schemas (Kasimier), Python resolver emitting error
3376    messages directly, Python xmlAttr.parent (Jakub Piotr Clapa), trying to
3377    fix the file path/URI conversion, xmlTextReaderGetAttribute fix (Rob
3378    Richards), xmlSchemaFreeAnnot memleak (Kasimier), HTML UTF-8
3379    serialization, streaming XPath, Schemas determinism detection problem,
3380    XInclude bug, Schemas context type (Dean Hill), validation fix (Derek
3381    Poon), xmlTextReaderGetAttribute[Ns] namespaces (Rob Richards), Schemas
3382    type fix (Kuba Nowakowski), UTF-8 parser bug, error in encoding handling,
3383    xmlGetLineNo fixes, bug on entities handling, entity name extraction in
3384    error handling with XInclude, text nodes in HTML body tags (Gary Coady),
3385    xml:id and IDness at the treee level fixes, XPath streaming patterns
3386  bugs.
3387   - improvements: structured interfaces for schemas and RNG error reports
3388    (Marcus Boerger), optimization of the char data inner loop parsing
3389    (thanks to Behdad Esfahbod for the idea), schematron validation though
3390    not finished yet, xmlSaveOption to omit XML declaration, keyref match
3391    error reports (Kasimier), formal expression handling code not plugged
3392    yet, more lax mode for the HTML parser, parser XML_PARSE_COMPACT option
3393    for text nodes allocation.
3394   - documentation: xmllint man page had --nonet duplicated
3395
3396
33972.6.20: Jul 10 2005:
3398   - build fixes: Windows build (Rob Richards), Mingw compilation (Igor
3399    Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and
3400    [email protected]), use gcc weak references to pthread to avoid the
3401    pthread dependency on Linux, compilation problem (Steve Nairn), compiling
3402    of subset (Morten Welinder), IPv6/ss_family compilation (William Brack),
3403    compilation when disabling parts of the library, standalone test
3404    distribution.
3405   - bug fixes: bug in lang(), memory cleanup on errors (William Brack),
3406    HTTP query strings (Aron Stansvik), memory leak in DTD (William), integer
3407    overflow in XPath (William), nanoftp buffer size, pattern "." apth fixup
3408    (Kasimier), leak in tree reported by Malcolm Rowe, replaceNode patch
3409    (Brent Hendricks), CDATA with NULL content (Mark Vakoc), xml:base fixup
3410    on XInclude (William), pattern fixes (William), attribute bug in
3411    exclusive c14n (Aleksey Sanin), xml:space and xml:lang with SAX2 (Rob
3412    Richards), namespace trouble in complex parsing (Malcolm Rowe), XSD type
3413    QNames fixes (Kasimier), XPath streaming fixups (William), RelaxNG bug
3414    (Rob Richards), Schemas for Schemas fixes (Kasimier), removal of ID (Rob
3415    Richards), a small RelaxNG leak, HTML parsing in push mode bug (James
3416    Bursa), failure to detect UTF-8 parsing bugs in CDATA sections,
3417    areBlanks() heuristic failure, duplicate attributes in DTD bug
3418  (William).
3419   - improvements: lot of work on Schemas by Kasimier Buchcik both on
3420    conformance and streaming, Schemas validation messages (Kasimier Buchcik,
3421    Matthew Burgess), namespace removal at the python level (Brent
3422    Hendricks), Update to new Schemas regression tests from W3C/Nist
3423    (Kasimier), xmlSchemaValidateFile() (Kasimier), implementation of
3424    xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml (James Wert),
3425    standalone test framework and programs, new DOM import APIs
3426    xmlDOMWrapReconcileNamespaces() xmlDOMWrapAdoptNode() and
3427    xmlDOMWrapRemoveNode(), extension of xmllint capabilities for SAX and
3428    Schemas regression tests, xmlStopParser() available in pull mode too,
3429    ienhancement to xmllint --shell namespaces support, Windows port of the
3430    standalone testing tools (Kasimier and William),
3431    xmlSchemaValidateStream() xmlSchemaSAXPlug() and xmlSchemaSAXUnplug() SAX
3432    Schemas APIs, Schemas xmlReader support.
3433
3434
34352.6.19: Apr 02 2005:
3436   - build fixes: drop .la from RPMs, --with-minimum build fix (William
3437    Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with AIX
3438    5.3 compiler, fixed elfgcchack.h generation and PLT reduction code on
3439    Linux/ELF/gcc4
3440   - bug fixes: schemas type decimal fixups (William Brack), xmmlint return
3441    code (Gerry Murphy), small schemas fixes (Matthew Burgess and GUY
3442    Fabrice), workaround "DAV:" namespace brokenness in c14n (Aleksey Sanin),
3443    segfault in Schemas (Kasimier Buchcik), Schemas attribute validation
3444    (Kasimier), Prop related functions and xmlNewNodeEatName (Rob Richards),
3445    HTML serialization of name attribute on a elements, Python error handlers
3446    leaks and improvement (Brent Hendricks), uninitialized variable in
3447    encoding code, Relax-NG validation bug, potential crash if
3448    gnorableWhitespace is NULL, xmlSAXParseDoc and xmlParseDoc signatures,
3449    switched back to assuming UTF-8 in case no encoding is given at
3450    serialization time
3451   - improvements: lot of work on Schemas by Kasimier Buchcik on facets
3452    checking and also mixed handling.
3453   -
3454
3455
34562.6.18: Mar 13 2005:
3457   - build fixes: warnings (Peter Breitenlohner), testapi.c generation,
3458    Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
3459    some gcc4 fixes, HP-UX portability fixes (Rick Jones).
3460   - bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
3461    xmlreader stopping on non-fatal errors, thread support for dictionaries
3462    reference counting (Gary Coady), internal subset and push problem, URL
3463    saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
3464    fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
3465    (Mike Hommey), warning should not count as error (William Brack),
3466    xmlCreatePushParser empty chunk, XInclude parser flags (William), cleanup
3467    FTP and HTTP code to reuse the uri parsing and IPv6 (William),
3468    xmlTextWriterStartAttributeNS fix (Rob Richards), XMLLINT_INDENT being
3469    empty (William), xmlWriter bugs (Rob Richards), multithreading on Windows
3470    (Rich Salz), xmlSearchNsByHref fix (Kasimier), Python binding leak (Brent
3471    Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
3472    (Rob Richards), Schemas decimal type fixes (William Brack),
3473    xmlByteConsumed static buffer (Ben Maurer).
3474   - improvement: speedup parsing comments and DTDs, dictionary support for
3475    hash tables, Schemas Identity constraints (Kasimier), streaming XPath
3476    subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
3477    values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
3478  Stansvik),
3479   - Documentation: Wiki support (Joel Reed)
3480
3481
34822.6.17: Jan 16 2005:
3483   - build fixes: Windows, warnings removal (William Brack),
3484    maintainer-clean dependency(William), build in a different directory
3485    (William), fixing --with-minimum configure build (William), BeOS build
3486    (Marcin Konicki), Python-2.4 detection (William), compilation on AIX (Dan
3487    McNichol)
3488   - bug fixes: xmlTextReaderHasAttributes (Rob Richards), xmlCtxtReadFile()
3489    to use the catalog(s), loop on output (William Brack), XPath memory leak,
3490    ID deallocation problem (Steve Shepard), debugDumpNode crash (William),
3491    warning not using error callback (William), xmlStopParser bug (William),
3492    UTF-16 with BOM on DTDs (William), namespace bug on empty elements in
3493    push mode (Rob Richards), line and col computations fixups (Aleksey
3494    Sanin), xmlURIEscape fix (William), xmlXPathErr on bad range (William),
3495    patterns with too many steps, bug in RNG choice optimization, line number
3496    sometimes missing.
3497   - improvements: XSD Schemas (Kasimier Buchcik), python generator
3498    (William), xmlUTF8Strpos speedup (William), unicode Python strings
3499    (William), XSD error reports (Kasimier Buchcik), Python __str__ call
3500    serialize().
3501   - new APIs: added xmlDictExists(), GetLineNumber and GetColumnNumber for
3502    the xmlReader (Aleksey Sanin), Dynamic Shared Libraries APIs (mostly Joel
3503    Reed), error extraction API from regexps, new XMLSave option for format
3504    (Phil Shafer)
3505   - documentation: site improvement (John Fleck), FAQ entries
3506  (William).
3507
3508
35092.6.16: Nov 10 2004:
3510   - general hardening and bug fixing crossing all the API based on new
3511    automated regression testing
3512   - build fix: IPv6 build and test on AIX (Dodji Seketeli)
3513   - bug fixes: problem with XML::Libxml reported by Petr Pajas,  encoding
3514    conversion functions return values, UTF-8 bug affecting XPath reported by
3515    Markus Bertheau, catalog problem with NULL entries (William Brack)
3516   - documentation: fix to xmllint man page, some API function description
3517    were updated.
3518   - improvements: DTD validation APIs provided at the Python level (Brent
3519    Hendricks)
3520
3521
35222.6.15: Oct 27 2004:
3523   - security fixes on the nanoftp and nanohttp modules
3524   - build fixes: xmllint detection bug in configure, building outside the
3525    source tree (Thomas Fitzsimmons)
3526   - bug fixes: HTML parser on broken ASCII chars in names (William), Python
3527    paths (Malcolm Tredinnick), xmlHasNsProp and default namespace (William),
3528    saving to python file objects (Malcolm Tredinnick), DTD lookup fix
3529    (Malcolm), save back <group> in catalogs (William), tree build
3530    fixes (DV and Rob Richards), Schemas memory bug, structured error handler
3531    on Python 64bits, thread local memory deallocation, memory leak reported
3532    by Volker Roth, xmlValidateDtd in the presence of an internal subset,
3533    entities and _private problem (William), xmlBuildRelativeURI error
3534    (William).
3535   - improvements: better XInclude error reports (William), tree debugging
3536    module and tests, convenience functions at the Reader API (Graham
3537    Bennett), add support for PI in the HTML parser.
3538
3539
35402.6.14: Sep 29 2004:
3541   - build fixes: configure paths for xmllint and xsltproc, compilation
3542    without HTML parser, compilation warning cleanups (William Brack &
3543    Malcolm Tredinnick), VMS makefile update (Craig Berry),
3544   - bug fixes: xmlGetUTF8Char (William Brack), QName properties (Kasimier
3545    Buchcik), XInclude testing, Notation serialization, UTF8ToISO8859x
3546    transcoding (Mark Itzcovitz), lots of XML Schemas cleanup and fixes
3547    (Kasimier), ChangeLog cleanup (Stepan Kasal), memory fixes (Mark Vakoc),
3548    handling of failed realloc(), out of bound array addressing in Schemas
3549    date handling, Python space/tabs cleanups (Malcolm Tredinnick), NMTOKENS
3550    E20 validation fix (Malcolm),
3551   - improvements: added W3C XML Schemas testsuite (Kasimier Buchcik), add
3552    xmlSchemaValidateOneElement (Kasimier), Python exception hierearchy
3553    (Malcolm Tredinnick), Python libxml2 driver improvement (Malcolm
3554    Tredinnick), Schemas support for xsi:schemaLocation,
3555    xsi:noNamespaceSchemaLocation, xsi:type (Kasimier Buchcik)
3556
3557
35582.6.13: Aug 31 2004:
3559   - build fixes: Windows and zlib (Igor Zlatkovic), -O flag with gcc,
3560    Solaris compiler warning, fixing RPM BuildRequires,
3561   - fixes: DTD loading on Windows (Igor), Schemas error reports APIs
3562    (Kasimier Buchcik), Schemas validation crash, xmlCheckUTF8 (William Brack
3563    and Julius Mittenzwei), Schemas facet check (Kasimier), default namespace
3564    problem (William), Schemas hexbinary empty values, encoding error could
3565    generate a serialization loop.
3566   - Improvements: Schemas validity improvements (Kasimier), added --path
3567    and --load-trace options to xmllint
3568   - documentation: tutorial update (John Fleck)
3569
3570
35712.6.12: Aug 22 2004:
3572   - build fixes: fix --with-minimum, elfgcchack.h fixes (Peter
3573    Breitenlohner), perl path lookup (William), diff on Solaris (Albert
3574    Chin), some 64bits cleanups.
3575   - Python: avoid a warning with 2.3 (William Brack), tab and space mixes
3576    (William), wrapper generator fixes (William), Cygwin support (Gerrit P.
3577    Haase), node wrapper fix (Marc-Antoine Parent), XML Schemas support
3578    (Torkel Lyng)
3579   - Schemas: a lot of bug fixes and improvements from Kasimier Buchcik
3580   - fixes: RVT fixes (William), XPath context resets bug (William), memory
3581    debug (Steve Hay), catalog white space handling (Peter Breitenlohner),
3582    xmlReader state after attribute reading (William), structured error
3583    handler (William), XInclude generated xml:base fixup (William), Windows
3584    memory reallocation problem (Steve Hay), Out of Memory conditions
3585    handling (William and Olivier Andrieu), htmlNewDoc() charset bug,
3586    htmlReadMemory init (William), a posteriori validation DTD base
3587    (William), notations serialization missing, xmlGetNodePath (Dodji),
3588    xmlCheckUTF8 (Diego Tartara), missing line numbers on entity
3589  (William)
3590   - improvements: DocBook catalog build scrip (William), xmlcatalog tool
3591    (Albert Chin), xmllint --c14n option, no_proxy environment (Mike Hommey),
3592    xmlParseInNodeContext() addition, extend xmllint --shell, allow XInclude
3593    to not generate start/end nodes, extend xmllint --version to include CVS
3594    tag (William)
3595   - documentation: web pages fixes, validity API docs fixes (William)
3596    schemas API fix (Eric Haszlakiewicz), xmllint man page (John Fleck)
3597
3598
35992.6.11: July 5 2004:
3600   - Schemas: a lot of changes and improvements by Kasimier Buchcik for
3601    attributes, namespaces and simple types.
3602   - build fixes: --with-minimum (William Brack),  some gcc cleanup
3603    (William), --with-thread-alloc (William)
3604   - portability: Windows binary package change (Igor Zlatkovic), Catalog
3605    path on Windows
3606   - documentation: update to the tutorial (John Fleck), xmllint return code
3607    (John Fleck), man pages (Ville Skytta),
3608   - bug fixes: C14N bug serializing namespaces (Aleksey Sanin), testSAX
3609    properly initialize the library (William), empty node set in XPath
3610    (William), xmlSchemas errors (William), invalid charref problem pointed
3611    by Morus Walter, XInclude xml:base generation (William), Relax-NG bug
3612    with div processing (William), XPointer and xml:base problem(William),
3613    Reader and entities, xmllint return code for schemas (William), reader
3614    streaming problem (Steve Ball), DTD serialization problem (William),
3615    libxml.m4 fixes (Mike Hommey), do not provide destructors as methods on
3616    Python classes, xmlReader buffer bug, Python bindings memory interfaces
3617    improvement (with Stéphane Bidoul), Fixed the push parser to be back to
3618    synchronous behaviour.
3619   - improvement: custom per-thread I/O enhancement (Rob Richards), register
3620    namespace in debug shell (Stefano Debenedetti), Python based regression
3621    test for non-Unix users (William), dynamically increase the number of
3622    XPath extension functions in Python and fix a memory leak (Marc-Antoine
3623    Parent and William)
3624   - performance: hack done with Arjan van de Ven to reduce ELF footprint
3625    and generated code on Linux, plus use gcc runtime profiling to optimize
3626    the code generated in the RPM packages.
3627
3628
36292.6.10: May 17 2004:
3630   - Web page generated for ChangeLog
3631   - build fixes: --without-html problems, make check without make all
3632   - portability: problem with xpath.c on Windows (MSC and Borland), memcmp
3633    vs. strncmp on Solaris, XPath tests on Windows (Mark Vakoc), C++ do not
3634    use "list" as parameter name, make tests work with Python 1.5 (Ed
3635  Davis),
3636   - improvements: made xmlTextReaderMode public, small buffers resizing
3637    (Morten Welinder), add --maxmem option to xmllint, add
3638    xmlPopInputCallback() for Matt Sergeant, refactoring of serialization
3639    escaping, added escaping customization
3640   - bugfixes: xsd:extension (Taihei Goi), assorted regexp bugs (William
3641    Brack), xmlReader end of stream problem, node deregistration with reader,
3642    URI escaping and filemanes,  XHTML1 formatting (Nick Wellnhofer), regexp
3643    transition reduction (William), various XSD Schemas fixes (Kasimier
3644    Buchcik), XInclude fallback problem (William), weird problems with DTD
3645    (William), structured error handler callback context (William), reverse
3646    xmlEncodeSpecialChars() behaviour back to escaping '"'
3647
3648
36492.6.9: Apr 18 2004:
3650   - implement xml:id Working Draft, relaxed XPath id() checking
3651   - bugfixes: xmlCtxtReset (Brent Hendricks), line number and CDATA (Dave
3652    Beckett), Relax-NG compilation (William Brack), Regexp patches (with
3653    William), xmlUriEscape (Mark Vakoc), a Relax-NG notAllowed problem (with
3654    William), Relax-NG name classes compares (William), XInclude duplicate
3655    fallback (William), external DTD encoding detection (William), a DTD
3656    validation bug (William), xmlReader Close() fix, recursive extension
3657    schemas
3658   - improvements: use xmlRead* APIs in test tools (Mark Vakoc), indenting
3659    save optimization, better handle IIS broken HTTP redirect  behaviour (Ian
3660    Hummel), HTML parser frameset (James Bursa), libxml2-python RPM
3661    dependency, XML Schemas union support (Kasimier Buchcik), warning removal
3662    clanup (William), keep ChangeLog compressed when installing from RPMs
3663   - documentation: examples and xmlDocDumpMemory docs (John Fleck), new
3664    example (load, xpath, modify, save), xmlCatalogDump() comments,
3665   - Windows: Borland C++ builder (Eric Zurcher), work around Microsoft
3666    compiler NaN handling bug (Mark Vakoc)
3667
3668
36692.6.8: Mar 23 2004:
3670   - First step of the cleanup of the serialization code and APIs
3671   - XML Schemas: mixed content (Adam Dickmeiss), QName handling fixes (Adam
3672    Dickmeiss), anyURI for "" (John Belmonte)
3673   - Python: Canonicalization C14N support added (Anthony Carrico)
3674   - xmlDocCopyNode() extension (William)
3675   - Relax-NG: fix when processing XInclude results (William), external
3676    reference in interleave (William), missing error on <choice>
3677    failure (William), memory leak in schemas datatype facets.
3678   - xmlWriter: patch for better DTD support (Alfred Mickautsch)
3679   - bug fixes: xmlXPathLangFunction memory leak (Mike Hommey and William
3680    Brack), no ID errors if using HTML_PARSE_NOERROR, xmlcatalog fallbacks to
3681    URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
3682    XInclude and XPointer fixes for entities (William), XML parser bug
3683    reported by Holger Rauch, nanohttp fd leak (William),  regexps char
3684    groups '-' handling (William), dictionary reference counting problems,
3685    do not close stderr.
3686   - performance patches from Petr Pajas
3687   - Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)
3688   - compilation and portability fixes: --without-valid, catalog cleanups
3689    (Peter Breitenlohner), MingW patch (Roland Schwingel), cross-compilation
3690    to Windows (Christophe de Vienne),  --with-html-dir fixup (Julio Merino
3691    Vidal), Windows build (Eric Zurcher)
3692
3693
36942.6.7: Feb 23 2004:
3695   - documentation: tutorial updates (John Fleck), benchmark results
3696   - xmlWriter: updates and fixes (Alfred Mickautsch, Lucas Brasilino)
3697   - XPath optimization (Petr Pajas)
3698   - DTD ID handling optimization
3699   - bugfixes: xpath number with  > 19 fractional (William Brack), push
3700    mode with unescaped '>' characters, fix xmllint --stream --timing, fix
3701    xmllint --memory --stream memory usage, xmlAttrSerializeTxtContent
3702    handling NULL, trying to fix Relax-NG/Perl interface.
3703   - python: 2.3 compatibility, whitespace fixes (Malcolm Tredinnick)
3704   - Added relaxng option to xmllint --shell
3705
3706
37072.6.6: Feb 12 2004:
3708   - nanohttp and nanoftp: buffer overflow error on URI parsing (Igor and
3709    William) reported by Yuuichi Teranishi
3710   - bugfixes: make test and path issues, xmlWriter attribute serialization
3711    (William Brack), xmlWriter indentation (William), schemas validation
3712    (Eric Haszlakiewicz), XInclude dictionaries issues (William and Oleg
3713    Paraschenko), XInclude empty fallback (William), HTML warnings (William),
3714    XPointer in XInclude (William), Python namespace serialization,
3715    isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
3716    entities in internal subset (William), internal subset bug in push mode,
3717    <xs:all> fix (Alexey Sarytchev)
3718   - Build: fix for automake-1.8 (Alexander Winston), warnings removal
3719    (Philip Ludlam), SOCKLEN_T detection fixes (Daniel Richard), fix
3720    --with-minimum configuration.
3721   - XInclude: allow the 2001 namespace without warning.
3722   - Documentation: missing example/index.html (John Fleck), version
3723    dependencies (John Fleck)
3724   - reader API: structured error reporting (Steve Ball)
3725   - Windows compilation: mingw, msys (Mikhail Grushinskiy), function
3726    prototype (Cameron Johnson), MSVC6 compiler warnings, _WINSOCKAPI_
3727  patch
3728   - Parsers: added xmlByteConsumed(ctxt) API to get the byte offset in
3729    input.
3730
3731
37322.6.5: Jan 25 2004:
3733   - Bugfixes: dictionaries for schemas (William Brack), regexp segfault
3734    (William), xs:all problem (William), a number of XPointer bugfixes
3735    (William), xmllint error go to stderr, DTD validation problem with
3736    namespace, memory leak (William), SAX1 cleanup and minimal options fixes
3737    (Mark Vadoc), parser context reset on error (Shaun McCance), XPath union
3738    evaluation problem (William) , xmlReallocLoc with NULL (Aleksey Sanin),
3739    XML Schemas double free (Steve Ball), XInclude with no href, argument
3740    callbacks order for XPath callbacks (Frederic Peters)
3741   - Documentation: python scripts (William Brack), xslt stylesheets (John
3742    Fleck), doc (Sven Zimmerman), I/O example.
3743   - Python bindings: fixes (William), enum support (Stéphane Bidoul),
3744    structured error reporting (Stéphane Bidoul)
3745   - XInclude: various fixes for conformance, problem related to dictionary
3746    references (William & me), recursion (William)
3747   - xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
3748    Mickautsch),
3749   - xmlSchemas: normalizedString datatype (John Belmonte)
3750   - code cleanup for strings functions (William)
3751   - Windows: compiler patches (Mark Vakoc)
3752   - Parser optimizations, a few new XPath and dictionary APIs for future
3753    XSLT optimizations.
3754
3755
37562.6.4: Dec 24 2003:
3757   - Windows build fixes (Igor Zlatkovic)
3758   - Some serious XInclude problems reported by Oleg Paraschenko and
3759   - Unix and Makefile packaging fixes (me, William Brack,
3760   - Documentation improvements (John Fleck, William Brack), example fix
3761    (Lucas Brasilino)
3762   - bugfixes: xmlTextReaderExpand() with xmlReaderWalker, XPath handling of
3763    NULL strings (William Brack) , API building reader or parser from
3764    filedescriptor should not close it, changed XPath sorting to be stable
3765    again (William Brack), xmlGetNodePath() generating '(null)' (William
3766    Brack), DTD validation and namespace bug (William Brack), XML Schemas
3767    double inclusion behaviour
3768
3769
37702.6.3: Dec 10 2003:
3771   - documentation updates and cleanup (DV, William Brack, John Fleck)
3772   - added a repository of examples, examples from Aleksey Sanin, Dodji
3773    Seketeli, Alfred Mickautsch
3774   - Windows updates: Mark Vakoc, Igor Zlatkovic, Eric Zurcher, Mingw
3775    (Kenneth Haley)
3776   - Unicode range checking (William Brack)
3777   - code cleanup (William Brack)
3778   - Python bindings: doc (John Fleck),  bug fixes
3779   - UTF-16 cleanup and BOM issues (William Brack)
3780   - bug fixes: ID and xmlReader validation, XPath (William Brack),
3781    xmlWriter (Alfred Mickautsch), hash.h inclusion problem, HTML parser
3782    (James Bursa), attribute defaulting and validation, some serialization
3783    cleanups, XML_GET_LINE macro, memory debug when using threads (William
3784    Brack), serialization of attributes and entities content, xmlWriter
3785    (Daniel Schulman)
3786   - XInclude bugfix, new APIs and update to the last version including the
3787    namespace change.
3788   - XML Schemas improvements: include (Robert Stepanek), import and
3789    namespace handling, fixed the regression tests troubles, added examples
3790    based on Eric van der Vlist book, regexp fixes
3791   - preliminary pattern support for streaming (needed for schemas
3792    constraints), added xmlTextReaderPreservePattern() to collect subdocument
3793    when streaming.
3794   - various fixes in the structured error handling
3795
3796
37972.6.2: Nov 4 2003:
3798   - XPath context unregistration fixes
3799   - text node coalescing fixes (Mark Lilback)
3800   - API to screate a W3C Schemas from an existing document (Steve Ball)
3801   - BeOS patches (Marcin 'Shard' Konicki)
3802   - xmlStrVPrintf function added (Aleksey Sanin)
3803   - compilation fixes (Mark Vakoc)
3804   - stdin parsing fix (William Brack)
3805   - a posteriori DTD validation fixes
3806   - xmlReader bug fixes: Walker fixes, python bindings
3807   - fixed xmlStopParser() to really stop the parser and errors
3808   - always generate line numbers when using the new xmlReadxxx
3809  functions
3810   - added XInclude support to the xmlReader interface
3811   - implemented XML_PARSE_NONET parser option
3812   - DocBook XSLT processing bug fixed
3813   - HTML serialization for <p> elements (William Brack and me)
3814   - XPointer failure in XInclude are now handled as resource errors
3815   - fixed xmllint --html to use the HTML serializer on output (added
3816    --xmlout to implement the previous behaviour of saving it using the XML
3817    serializer)
3818
3819
38202.6.1: Oct 28 2003:
3821   - Mostly bugfixes after the big 2.6.0 changes
3822   - Unix compilation patches: libxml.m4 (Patrick Welche), warnings cleanup
3823    (William Brack)
3824   - Windows compilation patches (Joachim Bauch, Stephane Bidoul, Igor
3825    Zlatkovic)
3826   - xmlWriter bugfix (Alfred Mickautsch)
3827   - chvalid.[ch]: couple of fixes from Stephane Bidoul
3828   - context reset: error state reset, push parser reset (Graham
3829  Bennett)
3830   - context reuse: generate errors if file is not readable
3831   - defaulted attributes for element coming from internal entities
3832    (Stephane Bidoul)
3833   - Python: tab and spaces mix (William Brack)
3834   - Error handler could crash in DTD validation in 2.6.0
3835   - xmlReader: do not use the document or element _private field
3836   - testSAX.c: avoid a problem with some PIs (Massimo Morara)
3837   - general bug fixes: mandatory encoding in text decl, serializing
3838    Document Fragment nodes, xmlSearchNs 2.6.0 problem (Kasimier Buchcik),
3839    XPath errors not reported,  slow HTML parsing of large documents.
3840
3841
38422.6.0: Oct 20 2003:
3843   - Major revision release: should be API and ABI compatible but got a lot
3844    of change
3845   - Increased the library modularity, far more options can be stripped out,
3846    a --with-minimum configuration will weight around 160KBytes
3847   - Use per parser and per document dictionary, allocate names and small
3848    text nodes from the dictionary
3849   - Switch to a SAX2 like parser rewrote most of the XML parser core,
3850    provides namespace resolution and defaulted attributes, minimize memory
3851    allocations and copies, namespace checking and specific error handling,
3852    immutable buffers, make predefined entities static structures, etc...
3853   - rewrote all the error handling in the library, all errors can be
3854    intercepted at a structured level, with precise information
3855  available.
3856   - New simpler and more generic XML and HTML parser APIs, allowing to
3857    easily modify the parsing options and reuse parser context for multiple
3858    consecutive documents.
3859   - Similar new APIs for the xmlReader, for options and reuse, provided new
3860    functions to access content as const strings, use them for Python
3861  bindings
3862   - a  lot of other smaller API improvements: xmlStrPrintf (Aleksey Sanin),
3863    Walker i.e. reader on a document tree based on Alfred Mickautsch code,
3864    make room in nodes for line numbers, reference counting and future PSVI
3865    extensions, generation of character ranges to be checked with faster
3866    algorithm (William),  xmlParserMaxDepth (Crutcher Dunnavant), buffer
3867    access
3868   - New xmlWriter API provided by Alfred Mickautsch
3869   - Schemas: base64 support by Anthony Carrico
3870   - Parser<->HTTP integration fix, proper processing of the Mime-Type
3871    and charset information if available.
3872   - Relax-NG: bug fixes including the one reported by Martijn Faassen and
3873    zeroOrMore, better error reporting.
3874   - Python bindings (Stéphane Bidoul), never use stdout for errors
3875  output
3876   - Portability: all the headers have macros for export and calling
3877    convention definitions (Igor Zlatkovic), VMS update (Craig A. Berry),
3878    Windows: threads (Jesse Pelton), Borland compiler (Eric Zurcher,  Igor),
3879    Mingw (Igor), typos (Mark Vakoc),  beta version (Stephane Bidoul),
3880    warning cleanups on AIX and MIPS compilers (William Brack), BeOS (Marcin
3881    'Shard' Konicki)
3882   - Documentation fixes and README (William Brack), search fix (William),
3883    tutorial updates (John Fleck), namespace docs (Stefan Kost)
3884   - Bug fixes: xmlCleanupParser (Dave Beckett), threading uninitialized
3885    mutexes, HTML doctype lowercase,  SAX/IO (William), compression detection
3886    and restore (William), attribute declaration in DTDs (William), namespace
3887    on attribute in HTML output (William), input filename (Rob Richards),
3888    namespace DTD validation, xmlReplaceNode (Chris Ryland), I/O callbacks
3889    (Markus Keim), CDATA serialization (Shaun McCance), xmlReader (Peter
3890    Derr), high codepoint charref like &#x10FFFF;, buffer access in push
3891    mode (Justin Fletcher), TLS threads on Windows (Jesse Pelton), XPath bug
3892    (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
3893    error handling.
3894   - xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
3895    testing,  --nodict for building without tree dictionary, --nocdata to
3896    replace CDATA by text, --nsclean to remove surperfluous  namespace
3897    declarations
3898   - added xml2-config --libtool-libs option from Kevin P. Fleming
3899   - a lot of profiling and tuning of the code, speedup patch for
3900    xmlSearchNs() by Luca Padovani. The xmlReader should do far less
3901    allocation and it speed should get closer to SAX. Chris Anderson worked
3902    on speeding and cleaning up repetitive checking code.
3903   - cleanup of "make tests"
3904   - libxml-2.0-uninstalled.pc from Malcolm Tredinnick
3905   - deactivated the broken docBook SGML parser code and plugged the XML
3906    parser instead.
3907
3908
39092.5.11: Sep 9 2003:
3910A bugfix only release:   - risk of crash in Relax-NG
3911   - risk of crash when using multithreaded programs
3912
3913
39142.5.10: Aug 15 2003:
3915A bugfixes only release   - Windows Makefiles (William Brack)
3916   - UTF-16 support fixes (Mark Itzcovitz)
3917   - Makefile and portability (William Brack) automake, Linux alpha, Mingw
3918    on Windows (Mikhail Grushinskiy)
3919   - HTML parser (Oliver Stoeneberg)
3920   - XInclude performance problem reported by Kevin Ruscoe
3921   - XML parser performance problem reported by Grant Goodale
3922   - xmlSAXParseDTD() bug fix from Malcolm Tredinnick
3923   - and a couple other cleanup
3924
3925
39262.5.9: Aug 9 2003:
3927   - bugfixes: IPv6 portability, xmlHasNsProp (Markus Keim), Windows build
3928    (Wiliam Brake, Jesse Pelton, Igor), Schemas (Peter Sobisch), threading
3929    (Rob Richards), hexBinary type (), UTF-16 BOM (Dodji Seketeli),
3930    xmlReader, Relax-NG schemas compilation, namespace handling,  EXSLT (Sean
3931    Griffin), HTML parsing problem (William Brack), DTD validation for mixed
3932    content + namespaces, HTML serialization, library initialization,
3933    progressive HTML parser
3934   - better interfaces for Relax-NG error handling (Joachim Bauch, )
3935   - adding xmlXIncludeProcessTree() for XInclud'ing in a subtree
3936   - doc fixes and improvements (John Fleck)
3937   - configure flag for -with-fexceptions when embedding in C++
3938   - couple of new UTF-8 helper functions (William Brack)
3939   - general encoding cleanup + ISO-8859-x without iconv (Peter Jacobi)
3940   - xmlTextReader cleanup + enum for node types (Bjorn Reese)
3941   - general compilation/warning cleanup Solaris/HP-UX/... (William
3942  Brack)
3943
3944
39452.5.8: Jul 6 2003:
3946   - bugfixes: XPath, XInclude, file/URI mapping, UTF-16 save (Mark
3947    Itzcovitz), UTF-8 checking, URI saving, error printing (William Brack),
3948    PI related memleak, compilation without schemas or without xpath (Joerg
3949    Schmitz-Linneweber/Garry Pennington), xmlUnlinkNode problem with DTDs,
3950    rpm problem on , i86_64, removed a few compilation problems from 2.5.7,
3951    xmlIOParseDTD, and xmlSAXParseDTD (Malcolm Tredinnick)
3952   - portability: DJGPP (MsDos) , OpenVMS (Craig A. Berry)
3953   - William Brack fixed multithreading lock problems
3954   - IPv6 patch for FTP and HTTP accesses (Archana Shah/Wipro)
3955   - Windows fixes (Igor Zlatkovic,  Eric Zurcher), threading (Stéphane
3956    Bidoul)
3957   - A few W3C Schemas Structure improvements
3958   - W3C Schemas Datatype improvements (Charlie Bozeman)
3959   - Python bindings for thread globals (Stéphane Bidoul), and method/class
3960    generator
3961   - added --nonet option to xmllint
3962   - documentation improvements (John Fleck)
3963
3964
39652.5.7: Apr 25 2003:
3966   - Relax-NG: Compiling to regexp and streaming validation on top of the
3967    xmlReader interface, added to xmllint --stream
3968   - xmlReader: Expand(), Next() and DOM access glue, bug fixes
3969   - Support for large files: RGN validated a 4.5GB instance
3970   - Thread support is now configured in by default
3971   - Fixes: update of the Trio code (Bjorn), WXS Date and Duration fixes
3972    (Charles Bozeman), DTD and namespaces (Brent Hendricks), HTML push parser
3973    and zero bytes handling, some missing Windows file path conversions,
3974    behaviour of the parser and validator in the presence of "out of memory"
3975    error conditions
3976   - extended the API to be able to plug a garbage collecting memory
3977    allocator, added xmlMallocAtomic() and modified the allocations
3978    accordingly.
3979   - Performances: removed excessive malloc() calls, speedup of the push and
3980    xmlReader interfaces, removed excessive thread locking
3981   - Documentation: man page (John Fleck), xmlReader documentation
3982   - Python: adding binding for xmlCatalogAddLocal (Brent M Hendricks)
3983
3984
39852.5.6: Apr 1 2003:
3986   - Fixed W3C XML Schemas datatype, should be compliant now except for
3987    binHex and base64 which are not supported yet.
3988   - bug fixes: non-ASCII IDs, HTML output, XInclude on large docs and
3989    XInclude entities handling, encoding detection on external subsets, XML
3990    Schemas bugs and memory leaks, HTML parser (James Bursa)
3991   - portability: python/trio (Albert Chin), Sun compiler warnings
3992   - documentation: added --relaxng option to xmllint man page (John)
3993   - improved error reporting: xml:space, start/end tag mismatches, Relax NG
3994    errors
3995
3996
39972.5.5: Mar 24 2003:
3998   - Lot of fixes on the Relax NG implementation. More testing including
3999    DocBook and TEI examples.
4000   - Increased the support for W3C XML Schemas datatype
4001   - Several bug fixes in the URI handling layer
4002   - Bug fixes: HTML parser, xmlReader, DTD validation, XPath, encoding
4003    conversion, line counting in the parser.
4004   - Added support for $XMLLINT_INDENT environment variable, FTP delete
4005   - Fixed the RPM spec file name
4006
4007
40082.5.4: Feb 20 2003:
4009   - Conformance testing and lot of fixes on Relax NG and XInclude
4010    implementation
4011   - Implementation of XPointer element() scheme
4012   - Bug fixes: XML parser, XInclude entities merge, validity checking on
4013    namespaces,
4014    2 serialization bugs, node info generation problems, a DTD regexp
4015    generation problem.
4016
4017   - Portability: windows updates and path canonicalization (Igor)
4018   - A few typo fixes (Kjartan Maraas)
4019   - Python bindings generator fixes (Stephane Bidoul)
4020
4021
40222.5.3: Feb 10 2003:
4023   - RelaxNG and XML Schemas datatypes improvements, and added a first
4024    version of RelaxNG Python bindings
4025   - Fixes: XLink (Sean Chittenden), XInclude (Sean Chittenden), API fix for
4026    serializing namespace nodes, encoding conversion bug, XHTML1
4027  serialization
4028   - Portability fixes: Windows (Igor), AMD 64bits RPM spec file
4029
4030
40312.5.2: Feb 5 2003:
4032   - First implementation of RelaxNG, added --relaxng flag to xmllint
4033   - Schemas support now compiled in by default.
4034   - Bug fixes: DTD validation, namespace checking, XInclude and entities,
4035    delegateURI in XML Catalogs, HTML parser, XML reader (Stéphane Bidoul),
4036    XPath parser and evaluation,  UTF8ToUTF8 serialization, XML reader memory
4037    consumption, HTML parser, HTML serialization in the presence of
4038  namespaces
4039   - added an HTML API to check elements and attributes.
4040   - Documentation improvement, PDF for the tutorial (John Fleck), doc
4041    patches (Stefan Kost)
4042   - Portability fixes: NetBSD (Julio Merino), Windows (Igor Zlatkovic)
4043   - Added python bindings for XPointer, contextual error reporting
4044    (Stéphane Bidoul)
4045   - URI/file escaping problems (Stefano Zacchiroli)
4046
4047
40482.5.1: Jan 8 2003:
4049   - Fixes a memory leak and configuration/compilation problems in 2.5.0
4050   - documentation updates (John)
4051   - a couple of XmlTextReader fixes
4052
4053
40542.5.0: Jan 6 2003:
4055   - New XmltextReader interface based on C#
4056    API (with help of Stéphane Bidoul)
4057   - Windows: more exports, including the new API (Igor)
4058   - XInclude fallback fix
4059   - Python: bindings for the new API, packaging (Stéphane Bidoul),
4060    drv_libxml2.py Python xml.sax driver (Stéphane Bidoul), fixes, speedup
4061    and iterators for Python-2.2 (Hannu Krosing)
4062   - Tutorial fixes (john Fleck and Niraj Tolia) xmllint man update
4063  (John)
4064   - Fix an XML parser bug raised by Vyacheslav Pindyura
4065   - Fix for VMS serialization (Nigel Hall) and config (Craig A. Berry)
4066   - Entities handling fixes
4067   - new API to optionally track node creation and deletion (Lukas
4068  Schroeder)
4069   - Added documentation for the XmltextReader interface and some XML guidelines
4070
4071
40722.4.30: Dec 12 2002:
4073   - 2.4.29 broke the python bindings, rereleasing
4074   - Improvement/fixes of the XML API generator, and couple of minor code
4075    fixes.
4076
4077
40782.4.29: Dec 11 2002:
4079   - Windows fixes (Igor): Windows CE port, pthread linking, python bindings
4080    (Stéphane Bidoul), Mingw (Magnus Henoch), and export list updates
4081   - Fix for prev in python bindings (ERDI Gergo)
4082   - Fix for entities handling (Marcus Clarke)
4083   - Refactored the XML and HTML dumps to a single code path, fixed XHTML1
4084    dump
4085   - Fix for URI parsing when handling URNs with fragment identifiers
4086   - Fix for HTTP URL escaping problem
4087   - added an TextXmlReader (C#) like API (work in progress)
4088   - Rewrote the API in XML generation script, includes a C parser and saves
4089    more information needed for C# bindings
4090
4091
40922.4.28: Nov 22 2002:
4093   - a couple of python binding fixes
4094   - 2 bug fixes in the XML push parser
4095   - potential memory leak removed (Martin Stoilov)
4096   - fix to the configure script for Unix (Dimitri Papadopoulos)
4097   - added encoding support for XInclude parse="text"
4098   - autodetection of XHTML1 and specific serialization rules added
4099   - nasty threading bug fixed (William Brack)
4100
4101
41022.4.27: Nov 17 2002:
4103   - fixes for the Python bindings
4104   - a number of bug fixes: SGML catalogs, xmlParseBalancedChunkMemory(),
4105    HTML parser,  Schemas (Charles Bozeman), document fragment support
4106    (Christian Glahn), xmlReconciliateNs (Brian Stafford), XPointer,
4107    xmlFreeNode(), xmlSAXParseMemory (Peter Jones), xmlGetNodePath (Petr
4108    Pajas), entities processing
4109   - added grep to xmllint --shell
4110   - VMS update patch from Craig A. Berry
4111   - cleanup of the Windows build with support for more compilers (Igor),
4112    better thread support on Windows
4113   - cleanup of Unix Makefiles and spec file
4114   - Improvements to the documentation (John Fleck)
4115
4116
41172.4.26: Oct 18 2002:
4118   - Patches for Windows CE port, improvements on Windows paths handling
4119   - Fixes to the validation  code (DTD and Schemas), xmlNodeGetPath() ,
4120    HTML serialization, Namespace compliance,  and a number of small
4121  problems
4122
4123
41242.4.25: Sep 26 2002:
4125   - A number of bug fixes: XPath, validation, Python bindings, DOM and
4126    tree, xmlI/O,  Html
4127   - Serious rewrite of XInclude
4128   - Made XML Schemas regexp part of the default build and APIs, small fix
4129    and improvement of the regexp core
4130   - Changed the validation code to reuse XML Schemas regexp APIs
4131   - Better handling of Windows file paths, improvement of Makefiles (Igor,
4132    Daniel Gehriger, Mark Vakoc)
4133   - Improved the python I/O bindings, the tests, added resolver and regexp
4134    APIs
4135   - New logos from Marc Liyanage
4136   - Tutorial improvements: John Fleck, Christopher Harris
4137   - Makefile: Fixes for AMD x86_64 (Mandrake), DESTDIR (Christophe
4138  Merlet)
4139   - removal of all stderr/perror use for error reporting
4140   - Better error reporting: XPath and DTD validation
4141   - update of the trio portability layer (Bjorn Reese)
4142
41432.4.24: Aug 22 2002   - XPath fixes (William), xf:escape-uri() (Wesley Terpstra)
4144   - Python binding fixes: makefiles (William), generator, rpm build, x86-64
4145    (fcrozat)
4146   - HTML <style> and boolean attributes serializer fixes
4147   - C14N improvements by Aleksey
4148   - doc cleanups: Rick Jones
4149   - Windows compiler makefile updates: Igor and Elizabeth Barham
4150   - XInclude: implementation of fallback and xml:base fixup added
4151
4152
41532.4.23: July 6 2002:
4154   - performances patches: Peter Jacobi
4155   - c14n fixes, testsuite and performances: Aleksey Sanin
4156   - added xmlDocFormatDump: Chema Celorio
4157   - new tutorial: John Fleck
4158   - new hash functions and performances: Sander Vesik, portability fix from
4159    Peter Jacobi
4160   - a number of bug fixes: XPath (William Brack, Richard Jinks), XML and
4161    HTML parsers, ID lookup function
4162   - removal of all remaining sprintf: Aleksey Sanin
4163
4164
41652.4.22: May 27 2002:
4166   - a number of bug fixes: configure scripts, base handling, parser, memory
4167    usage, HTML parser, XPath, documentation (Christian Cornelssen),
4168    indentation, URI parsing
4169   - Optimizations for XMLSec, fixing and making public some of the network
4170    protocol handlers (Aleksey)
4171   - performance patch from Gary Pennington
4172   - Charles Bozeman provided date and time support for XML Schemas
4173  datatypes
4174
4175
41762.4.21: Apr 29 2002:
4177This release is both a bug fix release and also contains the early XML
4178Schemas structures at
4179http://www.w3.org/TR/xmlschema-1/
4180 and datatypes at
4181http://www.w3.org/TR/xmlschema-2/
4182 code, beware, all
4183interfaces are likely to change, there is huge holes, it is clearly a work in
4184progress and don't even think of putting this code in a production system,
4185it's actually not compiled in by default. The real fixes are:
4186   - a couple of bugs or limitations introduced in 2.4.20
4187   - patches for Borland C++ and MSC by Igor
4188   - some fixes on XPath strings and conformance patches by Richard
4189  Jinks
4190   - patch from Aleksey for the ExcC14N specification
4191   - OSF/1 bug fix by Bjorn
4192
4193
41942.4.20: Apr 15 2002:
4195   - bug fixes: file descriptor leak, XPath, HTML output, DTD validation
4196   - XPath conformance testing by Richard Jinks
4197   - Portability fixes: Solaris, MPE/iX, Windows, OSF/1, python bindings,
4198    libxml.m4
4199
4200
42012.4.19: Mar 25 2002:
4202   - bug fixes: half a dozen XPath bugs, Validation, ISO-Latin to UTF8
4203    encoder
4204   - portability fixes in the HTTP code
4205   - memory allocation checks using valgrind, and profiling tests
4206   - revamp of the Windows build and Makefiles
4207
4208
42092.4.18: Mar 18 2002:
4210   - bug fixes: tree, SAX, canonicalization, validation, portability,
4211  XPath
4212   - removed the --with-buffer option it was becoming unmaintainable
4213   - serious cleanup of the Python makefiles
4214   - speedup patch to XPath very effective for DocBook stylesheets
4215   - Fixes for Windows build, cleanup of the documentation
4216
4217
42182.4.17: Mar 8 2002:
4219   - a lot of bug fixes, including "namespace nodes have no parents in
4220  XPath"
4221   - fixed/improved the Python wrappers, added more examples and more
4222    regression tests, XPath extension functions can now return node-sets
4223   - added the XML Canonicalization support from Aleksey Sanin
4224
4225
42262.4.16: Feb 20 2002:
4227   - a lot of bug fixes, most of them were triggered by the XML Testsuite
4228    from OASIS and W3C. Compliance has been significantly improved.
4229   - a couple of portability fixes too.
4230
4231
42322.4.15: Feb 11 2002:
4233   - Fixed the Makefiles, especially the python module ones
4234   - A few bug fixes and cleanup
4235   - Includes cleanup
4236
4237
42382.4.14: Feb 8 2002:
4239   - Change of License to the MIT
4240    License basically for integration in XFree86 codebase, and removing
4241    confusion around the previous dual-licensing
4242   - added Python bindings, beta software but should already be quite
4243    complete
4244   - a large number of fixes and cleanups, especially for all tree
4245    manipulations
4246   - cleanup of the headers, generation of a reference API definition in
4247  XML
4248
4249
42502.4.13: Jan 14 2002:
4251   - update of the documentation: John Fleck and Charlie Bozeman
4252   - cleanup of timing code from Justin Fletcher
4253   - fixes for Windows and initial thread support on Win32: Igor and Serguei
4254    Narojnyi
4255   - Cygwin patch from Robert Collins
4256   - added xmlSetEntityReferenceFunc() for Keith Isdale work on xsldbg
4257
4258
42592.4.12: Dec 7 2001:
4260   - a few bug fixes: thread (Gary Pennington), xmllint (Geert Kloosterman),
4261    XML parser (Robin Berjon), XPointer (Danny Jamshy), I/O cleanups
4262  (robert)
4263   - Eric Lavigne contributed project files for MacOS
4264   - some makefiles cleanups
4265
4266
42672.4.11: Nov 26 2001:
4268   - fixed a couple of errors in the includes, fixed a few bugs, some code
4269    cleanups
4270   - xmllint man pages improvement by Heiko Rupp
4271   - updated VMS build instructions from John A Fotheringham
4272   - Windows Makefiles updates from Igor
4273
4274
42752.4.10: Nov 10 2001:
4276   - URI escaping fix (Joel Young)
4277   - added xmlGetNodePath() (for paths or XPointers generation)
4278   - Fixes namespace handling problems when using DTD and validation
4279   - improvements on xmllint: Morus Walter patches for --format and
4280    --encode, Stefan Kost and Heiko Rupp improvements on the --shell
4281   - fixes for xmlcatalog linking pointed by Weiqi Gao
4282   - fixes to the HTML parser
4283
4284
42852.4.9: Nov 6 2001:
4286   - fixes more catalog bugs
4287   - avoid a compilation problem, improve xmlGetLineNo()
4288
4289
42902.4.8: Nov 4 2001:
4291   - fixed SGML catalogs broken in previous release, updated xmlcatalog
4292  tool
4293   - fixed a compile errors and some includes troubles.
4294
4295
42962.4.7: Oct 30 2001:
4297   - exported some debugging interfaces
4298   - serious rewrite of the catalog code
4299   - integrated Gary Pennington thread safety patch, added configure option
4300    and regression tests
4301   - removed an HTML parser bug
4302   - fixed a couple of potentially serious validation bugs
4303   - integrated the SGML DocBook support in xmllint
4304   - changed the nanoftp anonymous login passwd
4305   - some I/O cleanup and a couple of interfaces for Perl wrapper
4306   - general bug fixes
4307   - updated xmllint man page by John Fleck
4308   - some VMS and Windows updates
4309
4310
43112.4.6: Oct 10 2001:
4312   - added an updated man pages by John Fleck
4313   - portability and configure fixes
4314   - an infinite loop on the HTML parser was removed (William)
4315   - Windows makefile patches from Igor
4316   - fixed half a dozen bugs reported for libxml or libxslt
4317   - updated xmlcatalog to be able to modify SGML super catalogs
4318
4319
43202.4.5: Sep 14 2001:
4321   - Remove a few annoying bugs in 2.4.4
4322   - forces the HTML serializer to output decimal charrefs since some
4323    version of Netscape can't handle hexadecimal ones
4324
4325
43261.8.16: Sep 14 2001:
4327   - maintenance release of the old libxml1 branch, couple of bug and
4328    portability fixes
4329
4330
43312.4.4: Sep 12 2001:
4332   - added --convert to xmlcatalog, bug fixes and cleanups of XML
4333  Catalog
4334   - a few bug fixes and some portability changes
4335   - some documentation cleanups
4336
4337
43382.4.3:  Aug 23 2001:
4339   - XML Catalog support see the doc
4340   - New NaN/Infinity floating point code
4341   - A few bug fixes
4342
4343
43442.4.2:  Aug 15 2001:
4345   - adds xmlLineNumbersDefault() to control line number generation
4346   - lot of bug fixes
4347   - the Microsoft MSC projects files should now be up to date
4348   - inheritance of namespaces from DTD defaulted attributes
4349   - fixes a serious potential security bug
4350   - added a --format option to xmllint
4351
4352
43532.4.1:  July 24 2001:
4354   - possibility to keep line numbers in the tree
4355   - some computation NaN fixes
4356   - extension of the XPath API
4357   - cleanup for alpha and ia64 targets
4358   - patch to allow saving through HTTP PUT or POST
4359
4360
43612.4.0: July 10 2001:
4362   - Fixed a few bugs in XPath, validation, and tree handling.
4363   - Fixed XML Base implementation, added a couple of examples to the
4364    regression tests
4365   - A bit of cleanup
4366
4367
43682.3.14: July 5 2001:
4369   - fixed some entities problems and reduce memory requirement when
4370    substituting them
4371   - lots of improvements in the XPath queries interpreter can be
4372    substantially faster
4373   - Makefiles and configure cleanups
4374   - Fixes to XPath variable eval, and compare on empty node set
4375   - HTML tag closing bug fixed
4376   - Fixed an URI reference computation problem when validating
4377
4378
43792.3.13: June 28 2001:
4380   - 2.3.12 configure.in was broken as well as the push mode XML parser
4381   - a few more fixes for compilation on Windows MSC by Yon Derek
4382
4383
43841.8.14: June 28 2001:
4385   - Zbigniew Chyla gave a patch to use the old XML parser in push mode
4386   - Small Makefile fix
4387
4388
43892.3.12: June 26 2001:
4390   - lots of cleanup
4391   - a couple of validation fix
4392   - fixed line number counting
4393   - fixed serious problems in the XInclude processing
4394   - added support for UTF8 BOM at beginning of entities
4395   - fixed a strange gcc optimizer bugs in xpath handling of float, gcc-3.0
4396    miscompile uri.c (William), Thomas Leitner provided a fix for the
4397    optimizer on Tru64
4398   - incorporated Yon Derek and Igor Zlatkovic  fixes and improvements for
4399    compilation on Windows MSC
4400   - update of libxml-doc.el (Felix Natter)
4401   - fixed 2 bugs in URI normalization code
4402
4403
44042.3.11: June 17 2001:
4405   - updates to trio, Makefiles and configure should fix some portability
4406    problems (alpha)
4407   - fixed some HTML serialization problems (pre, script, and block/inline
4408    handling), added encoding aware APIs, cleanup of this code
4409   - added xmlHasNsProp()
4410   - implemented a specific PI for encoding support in the DocBook SGML
4411    parser
4412   - some XPath fixes (-Infinity, / as a function parameter and namespaces
4413    node selection)
4414   - fixed a performance problem and an error in the validation code
4415   - fixed XInclude routine to implement the recursive behaviour
4416   - fixed xmlFreeNode problem when libxml is included statically twice
4417   - added --version to xmllint for bug reports
4418
4419
44202.3.10: June 1 2001:
4421   - fixed the SGML catalog support
4422   - a number of reported bugs got fixed, in XPath, iconv detection,
4423    XInclude processing
4424   - XPath string function should now handle unicode correctly
4425
4426
44272.3.9: May 19 2001:
4428Lots of bugfixes, and added a basic SGML catalog support:
4429   - HTML push bugfix #54891 and another patch from Jonas Borgstrom
4430   - some serious speed optimization again
4431   - some documentation cleanups
4432   - trying to get better linking on Solaris (-R)
4433   - XPath API cleanup from Thomas Broyer
4434   - Validation bug fixed #54631, added a patch from Gary Pennington, fixed
4435    xmlValidGetValidElements()
4436   - Added an INSTALL file
4437   - Attribute removal added to API: #54433
4438   - added a basic support for SGML catalogs
4439   - fixed xmlKeepBlanksDefault(0) API
4440   - bugfix in xmlNodeGetLang()
4441   - fixed a small configure portability problem
4442   - fixed an inversion of SYSTEM and PUBLIC identifier in HTML document
4443
4444
44451.8.13: May 14 2001:
4446   - bugfixes release of the old libxml1 branch used by Gnome
4447
4448
44492.3.8: May 3 2001:
4450   - Integrated an SGML DocBook parser for the Gnome project
4451   - Fixed a few things in the HTML parser
4452   - Fixed some XPath bugs raised by XSLT use, tried to fix the floating
4453    point portability issue
4454   - Speed improvement (8M/s for SAX, 3M/s for DOM, 1.5M/s for
4455    DOM+validation using the XML REC as input and a 700MHz celeron).
4456   - incorporated more Windows cleanup
4457   - added xmlSaveFormatFile()
4458   - fixed problems in copying nodes with entities references (gdome)
4459   - removed some troubles surrounding the new validation module
4460
4461
44622.3.7: April 22 2001:
4463   - lots of small bug fixes, corrected XPointer
4464   - Non deterministic content model validation support
4465   - added xmlDocCopyNode for gdome2
4466   - revamped the way the HTML parser handles end of tags
4467   - XPath: corrections of namespaces support and number formatting
4468   - Windows: Igor Zlatkovic patches for MSC compilation
4469   - HTML output fixes from P C Chow and William M. Brack
4470   - Improved validation speed sensible for DocBook
4471   - fixed a big bug with ID declared in external parsed entities
4472   - portability fixes, update of Trio from Bjorn Reese
4473
4474
44752.3.6: April 8 2001:
4476   - Code cleanup using extreme gcc compiler warning options, found and
4477    cleared half a dozen potential problem
4478   - the Eazel team found an XML parser bug
4479   - cleaned up the user of some of the string formatting function. used the
4480    trio library code to provide the one needed when the platform is missing
4481    them
4482   - xpath: removed a memory leak and fixed the predicate evaluation
4483    problem, extended the testsuite and cleaned up the result. XPointer seems
4484    broken ...
4485
4486
44872.3.5: Mar 23 2001:
4488   - Biggest change is separate parsing and evaluation of XPath expressions,
4489    there is some new APIs for this too
4490   - included a number of bug fixes(XML push parser, 51876, notations,
4491  52299)
4492   - Fixed some portability issues
4493
4494
44952.3.4: Mar 10 2001:
4496   - Fixed bugs #51860 and #51861
4497   - Added a global variable xmlDefaultBufferSize to allow default buffer
4498    size to be application tunable.
4499   - Some cleanup in the validation code, still a bug left and this part
4500    should probably be rewritten to support ambiguous content model :-\
4501   - Fix a couple of serious bugs introduced or raised by changes in 2.3.3
4502    parser
4503   - Fixed another bug in xmlNodeGetContent()
4504   - Bjorn fixed XPath node collection and Number formatting
4505   - Fixed a loop reported in the HTML parsing
4506   - blank space are reported even if the Dtd content model proves that they
4507    are formatting spaces, this is for XML conformance
4508
4509
45102.3.3: Mar 1 2001:
4511   - small change in XPath for XSLT
4512   - documentation cleanups
4513   - fix in validation by Gary Pennington
4514   - serious parsing performances improvements
4515
4516
45172.3.2: Feb 24 2001:
4518   - chasing XPath bugs, found a bunch, completed some TODO
4519   - fixed a Dtd parsing bug
4520   - fixed a bug in xmlNodeGetContent
4521   - ID/IDREF support partly rewritten by Gary Pennington
4522
4523
45242.3.1: Feb 15 2001:
4525   - some XPath and HTML bug fixes for XSLT
4526   - small extension of the hash table interfaces for DOM gdome2
4527    implementation
4528   - A few bug fixes
4529
4530
45312.3.0: Feb 8 2001 (2.2.12 was on 25 Jan but I didn't kept track):
4532   - Lots of XPath bug fixes
4533   - Add a mode with Dtd lookup but without validation error reporting for
4534    XSLT
4535   - Add support for text node without escaping (XSLT)
4536   - bug fixes for xmlCheckFilename
4537   - validation code bug fixes from Gary Pennington
4538   - Patch from Paul D. Smith correcting URI path normalization
4539   - Patch to allow simultaneous install of libxml-devel and
4540  libxml2-devel
4541   - the example Makefile is now fixed
4542   - added HTML to the RPM packages
4543   - tree copying bugfixes
4544   - updates to Windows makefiles
4545   - optimization patch from Bjorn Reese
4546
4547
45482.2.11: Jan 4 2001:
4549   - bunch of bug fixes (memory I/O, xpath, ftp/http, ...)
4550   - added htmlHandleOmittedElem()
4551   - Applied Bjorn Reese's IPV6 first patch
4552   - Applied Paul D. Smith patches for validation of XInclude results
4553   - added XPointer xmlns() new scheme support
4554
4555
45562.2.10: Nov 25 2000:
4557   - Fix the Windows problems of 2.2.8
4558   - integrate OpenVMS patches
4559   - better handling of some nasty HTML input
4560   - Improved the XPointer implementation
4561   - integrate a number of provided patches
4562
4563
45642.2.9: Nov 25 2000:
4565   - erroneous release :-(
4566
4567
45682.2.8: Nov 13 2000:
4569   - First version of XInclude
4570    support
4571   - Patch in conditional section handling
4572   - updated MS compiler project
4573   - fixed some XPath problems
4574   - added an URI escaping function
4575   - some other bug fixes
4576
4577
45782.2.7: Oct 31 2000:
4579   - added message redirection
4580   - XPath improvements (thanks TOM !)
4581   - xmlIOParseDTD() added
4582   - various small fixes in the HTML, URI, HTTP and XPointer support
4583   - some cleanup of the Makefile, autoconf and the distribution content
4584
4585
45862.2.6: Oct 25 2000::
4587   - Added an hash table module, migrated a number of internal structure to
4588    those
4589   - Fixed a posteriori validation problems
4590   - HTTP module cleanups
4591   - HTML parser improvements (tag errors, script/style handling, attribute
4592    normalization)
4593   - coalescing of adjacent text nodes
4594   - couple of XPath bug fixes, exported the internal API
4595
4596
45972.2.5: Oct 15 2000::
4598   - XPointer implementation and testsuite
4599   - Lot of XPath fixes, added variable and functions registration, more
4600    tests
4601   - Portability fixes, lots of enhancements toward an easy Windows build
4602    and release
4603   - Late validation fixes
4604   - Integrated a lot of contributed patches
4605   - added memory management docs
4606   - a performance problem when using large buffer seems fixed
4607
4608
46092.2.4: Oct 1 2000::
4610   - main XPath problem fixed
4611   - Integrated portability patches for Windows
4612   - Serious bug fixes on the URI and HTML code
4613
4614
46152.2.3: Sep 17 2000:
4616   - bug fixes
4617   - cleanup of entity handling code
4618   - overall review of all loops in the parsers, all sprintf usage has been
4619    checked too
4620   - Far better handling of larges Dtd. Validating against DocBook XML Dtd
4621    works smoothly now.
4622
4623
46241.8.10: Sep 6 2000:
4625   - bug fix release for some Gnome projects
4626
4627
46282.2.2: August 12 2000:
4629   - mostly bug fixes
4630   - started adding routines to access xml parser context options
4631
4632
46332.2.1: July 21 2000:
4634   - a purely bug fixes release
4635   - fixed an encoding support problem when parsing from a memory block
4636   - fixed a DOCTYPE parsing problem
4637   - removed a bug in the function allowing to override the memory
4638    allocation routines
4639
4640
46412.2.0: July 14 2000:
4642   - applied a lot of portability fixes
4643   - better encoding support/cleanup and saving (content is now always
4644    encoded in UTF-8)
4645   - the HTML parser now correctly handles encodings
4646   - added xmlHasProp()
4647   - fixed a serious problem with &#38;
4648   - propagated the fix to FTP client
4649   - cleanup, bugfixes, etc ...
4650   - Added a page about libxml Internationalization
4651    support
4652
4653
46541.8.9:  July 9 2000:
4655   - fixed the spec the RPMs should be better
4656   - fixed a serious bug in the FTP implementation, released 1.8.9 to solve
4657    rpmfind users problem
4658
4659
46602.1.1: July 1 2000:
4661   - fixes a couple of bugs in the 2.1.0 packaging
4662   - improvements on the HTML parser
4663
4664
46652.1.0 and 1.8.8: June 29 2000:
4666   - 1.8.8 is mostly a commodity package for upgrading to libxml2 according
4667    to new instructions. It fixes a nasty problem
4668    about &#38; charref parsing
4669   - 2.1.0 also ease the upgrade from libxml v1 to the recent version. it
4670    also contains numerous fixes and enhancements:
4671
4672      added xmlStopParser() to stop parsing
4673      improved a lot parsing speed when there is large CDATA blocks
4674      includes XPath patches provided by Picdar Technology
4675      tried to fix as much as possible DTD validation and namespace
4676        related problems
4677      output to a given encoding has been added/tested
4678      lot of various fixes
4679
4680
4681   - added xmlStopParser() to stop parsing
4682   - improved a lot parsing speed when there is large CDATA blocks
4683   - includes XPath patches provided by Picdar Technology
4684   - tried to fix as much as possible DTD validation and namespace
4685        related problems
4686   - output to a given encoding has been added/tested
4687   - lot of various fixes
4688
4689
46902.0.0: Apr 12 2000:
4691   - First public release of libxml2. If you are using libxml, it's a good
4692    idea to check the 1.x to 2.x upgrade instructions. NOTE: while initially
4693    scheduled for Apr 3 the release occurred only on Apr 12 due to massive
4694    workload.
4695   - The include are now located under $prefix/include/libxml (instead of
4696    $prefix/include/gnome-xml), they also are referenced by
4697    #include <libxml/xxx.h>
4698    instead of
4699    #include "xxx.h"
4700
4701   - a new URI module for parsing URIs and following strictly RFC 2396
4702   - the memory allocation routines used by libxml can now be overloaded
4703    dynamically by using xmlMemSetup()
4704   - The previously CVS only tool tester has been renamed
4705    xmllint and is now installed as part of the libxml2
4706    package
4707   - The I/O interface has been revamped. There is now ways to plug in
4708    specific I/O modules, either at the URI scheme detection level using
4709    xmlRegisterInputCallbacks()  or by passing I/O functions when creating a
4710    parser context using xmlCreateIOParserCtxt()
4711   - there is a C preprocessor macro LIBXML_VERSION providing the version
4712    number of the libxml module in use
4713   - a number of optional features of libxml can now be excluded at
4714    configure time (FTP/HTTP/HTML/XPath/Debug)
4715
4716
47172.0.0beta: Mar 14 2000:
4718   - This is a first Beta release of libxml version 2
4719   - It's available only fromxmlsoft.org
4720    FTP, it's packaged as libxml2-2.0.0beta and available as tar and
4721  RPMs
4722   - This version is now the head in the Gnome CVS base, the old one is
4723    available under the tag LIB_XML_1_X
4724   - This includes a very large set of changes. From a  programmatic point
4725    of view applications should not have to be modified too much, check the
4726    upgrade page
4727   - Some interfaces may changes (especially a bit about encoding).
4728   - the updates includes:
4729
4730      fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
4731        handled now
4732      Better handling of entities, especially well-formedness checking
4733        and proper PEref extensions in external subsets
4734      DTD conditional sections
4735      Validation now correctly handle entities content
4736      change
4737        structures to accommodate DOM
4738
4739
4740   - fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
4741        handled now
4742   - Better handling of entities, especially well-formedness checking
4743        and proper PEref extensions in external subsets
4744   - DTD conditional sections
4745   - Validation now correctly handle entities content
4746   - change
4747        structures to accommodate DOM
4748   - Serious progress were made toward compliance, here are the result of the test against the
4749    OASIS testsuite (except the Japanese tests since I don't support that
4750    encoding yet). This URL is rebuilt every couple of hours using the CVS
4751    head version.
4752
4753
47541.8.7: Mar 6 2000:
4755   - This is a bug fix release:
4756   - It is possible to disable the ignorable blanks heuristic used by
4757    libxml-1.x, a new function  xmlKeepBlanksDefault(0) will allow this. Note
4758    that for adherence to XML spec, this behaviour will be disabled by
4759    default in 2.x . The same function will allow to keep compatibility for
4760    old code.
4761   - Blanks in <a>  </a> constructs are not ignored anymore,
4762    avoiding heuristic is really the Right Way :-\
4763   - The unchecked use of snprintf which was breaking libxml-1.8.6
4764    compilation on some platforms has been fixed
4765   - nanoftp.c nanohttp.c: Fixed '#' and '?' stripping when processing
4766  URIs
4767
4768
47691.8.6: Jan 31 2000:
4770   - added a nanoFTP transport module, debugged until the new version of rpmfind can use
4771    it without troubles
4772
4773
47741.8.5: Jan 21 2000:
4775   - adding APIs to parse a well balanced chunk of XML (production [43] content of the
4776    XML spec)
4777   - fixed a hideous bug in xmlGetProp pointed by [email protected]
4778   - Jody Goldberg <[email protected]> provided another patch trying
4779    to solve the zlib checks problems
4780   - The current state in gnome CVS base is expected to ship as 1.8.5 with
4781    gnumeric soon
4782
4783
47841.8.4: Jan 13 2000:
4785   - bug fixes, reintroduced xmlNewGlobalNs(), fixed xmlNewNs()
4786   - all exit() call should have been removed from libxml
4787   - fixed a problem with INCLUDE_WINSOCK on WIN32 platform
4788   - added newDocFragment()
4789
4790
47911.8.3: Jan 5 2000:
4792   - a Push interface for the XML and HTML parsers
4793   - a shell-like interface to the document tree (try tester --shell :-)
4794   - lots of bug fixes and improvement added over XMas holidays
4795   - fixed the DTD parsing code to work with the xhtml DTD
4796   - added xmlRemoveProp(), xmlRemoveID() and xmlRemoveRef()
4797   - Fixed bugs in xmlNewNs()
4798   - External entity loading code has been revamped, now it uses
4799    xmlLoadExternalEntity(), some fix on entities processing were added
4800   - cleaned up WIN32 includes of socket stuff
4801
4802
48031.8.2: Dec 21 1999:
4804   - I got another problem with includes and C++, I hope this issue is fixed
4805    for good this time
4806   - Added a few tree modification functions: xmlReplaceNode,
4807    xmlAddPrevSibling, xmlAddNextSibling, xmlNodeSetName and
4808    xmlDocSetRootElement
4809   - Tried to improve the HTML output with help from Chris Lahey
4810
4811
48121.8.1: Dec 18 1999:
4813   - various patches to avoid troubles when using libxml with C++ compilers
4814    the "namespace" keyword and C escaping in include files
4815   - a problem in one of the core macros IS_CHAR was corrected
4816   - fixed a bug introduced in 1.8.0 breaking default namespace processing,
4817    and more specifically the Dia application
4818   - fixed a posteriori validation (validation after parsing, or by using a
4819    Dtd not specified in the original document)
4820   - fixed a bug in
4821
4822
48231.8.0: Dec 12 1999:
4824   - cleanup, especially memory wise
4825   - the parser should be more reliable, especially the HTML one, it should
4826    not crash, whatever the input !
4827   - Integrated various patches, especially a speedup improvement for large
4828    dataset from Carl Nygard,
4829    configure with --with-buffers to enable them.
4830   - attribute normalization, oops should have been added long ago !
4831   - attributes defaulted from DTDs should be available, xmlSetProp() now
4832    does entities escaping by default.
4833
4834
48351.7.4: Oct 25 1999:
4836   - Lots of HTML improvement
4837   - Fixed some errors when saving both XML and HTML
4838   - More examples, the regression tests should now look clean
4839   - Fixed a bug with contiguous charref
4840
4841
48421.7.3: Sep 29 1999:
4843   - portability problems fixed
4844   - snprintf was used unconditionally, leading to link problems on system
4845    were it's not available, fixed
4846
4847
48481.7.1: Sep 24 1999:
4849   - The basic type for strings manipulated by libxml has been renamed in
4850    1.7.1 from CHAR to xmlChar. The reason
4851    is that CHAR was conflicting with a predefined type on Windows. However
4852    on non WIN32 environment, compatibility is provided by the way of  a
4853    #define .
4854   - Changed another error : the use of a structure field called errno, and
4855    leading to troubles on platforms where it's a macro
4856
4857
48581.7.0: Sep 23 1999:
4859   - Added the ability to fetch remote DTD or parsed entities, see the nanohttp module.
4860   - Added an errno to report errors by another mean than a simple printf
4861    like callback
4862   - Finished ID/IDREF support and checking when validation
4863   - Serious memory leaks fixed (there is now a memory wrapper module)
4864   - Improvement of XPath
4865    implementation
4866   - Added an HTML parser front-end
4867
4868Daniel Veillard at
4869bugs.html
4870