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