Skip to content

Commit 4324cbf

Browse files
committed
Update to 2.15.0
1 parent 370a1e1 commit 4324cbf

326 files changed

Lines changed: 27036 additions & 81772 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

HTMLparser.c

Lines changed: 556 additions & 881 deletions
Large diffs are not rendered by default.

HTMLtree.c

Lines changed: 762 additions & 535 deletions
Large diffs are not rendered by default.

NEWS

Lines changed: 66 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,71 @@
11
NEWS file for libxml2
22

3+
v2.15.0: Sep 15 2025
4+
5+
### Major changes
6+
7+
The API documentation is now generated with Doxygen. Building the
8+
documentation requires the new --with-docs configuration option as well
9+
as Doxygen, xsltproc and the DocBook 4 XSLT stylesheets.
10+
11+
The Python bindings are disabled by default now. Building the bindings
12+
also requires Doxygen.
13+
14+
Support for Schematron is now disabled by default.
15+
16+
The parser option XML_PARSE_UNZIP is now required to read compressed data.
17+
18+
HTML serialization and handling of character encodings is more in line
19+
with the HTML5 spec now.
20+
21+
More accessors for xmlParserCtxt were added.
22+
23+
### Deprecations
24+
25+
More internal functions and struct members were deprecated.
26+
27+
### Removals
28+
29+
The built-in HTTP client and support for LZMA compression were removed.
30+
31+
The custom Windows build system in `win32` was removed in favor of CMake.
32+
33+
### Planned removals
34+
35+
The Python bindings and support for Schematron validation are planned to
36+
be removed in the 2.16 release.
37+
38+
The following features are considered for removal:
39+
40+
- Modules API (xmlmodule.h)
41+
- Support for zlib compressed file I/O
42+
43+
RELAX NG support is still in a bad state and a long-term removal
44+
candidate.
45+
46+
### Thanks
47+
48+
Thanks to the following contributors:
49+
50+
- Alex Richardson
51+
- Benjamin Gilbert
52+
- Caolán McNamara
53+
- Collin Funk
54+
- Dag-Erling Smørgrav
55+
- Dan Yeaw
56+
- Daniel P. Berrangé
57+
- Francesco Pretto
58+
- Lovell Fuller
59+
- Maks Verver
60+
- Markus Rickert
61+
- Michael Mann
62+
- Omar Siam
63+
- Pavel Kopylov
64+
- Peter Kokot
65+
- Samuel Thibault
66+
- ThomasK
67+
68+
369
v2.14.6: Sep 8 2025
470

571
### Regressions
@@ -167,19 +233,6 @@ Overflow checks before reallocations were hardenend.
167233

168234
Some unprefixed symbols were renamed to avoid namespace pollution.
169235

170-
### Other potentially incompatible changes
171-
172-
Strings passed to the "characters" callback of the HTML SAX parser
173-
aren't null-terminated anymore, matching the behavior of the XML
174-
parser. Custom SAX parsers must use the "len" argument.
175-
176-
xmlIOParseDTD doesn't allow null bytes at the end of the input anymore.
177-
178-
Type and layout of conversion callbacks in struct xmlCharEncodingHandler
179-
were changed. Applications using libxml2's encoding conversion API
180-
should use functions xmlCharEncInFunc and xmlCharEncOutFunc instead of
181-
accessing the callbacks directly.
182-
183236
### New features
184237

185238
Input callbacks can now be set on a parser context and an improved API
@@ -220,9 +273,6 @@ The xpointer() scheme now behaves like the xpath1() scheme.
220273

221274
Several legacy symbols and the functions in xmlunicode.h were removed.
222275

223-
Some unprefixed, internal macros like ATTRIBUTE_UNUSED were removed
224-
from public headers.
225-
226276
ELF version information was removed.
227277

228278
The shell was moved from libxml2 to xmllint. Several related functions

README.libxml2.md

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ The git repository is hosted on GNOME's GitLab server:
1111

1212
Bugs should be reported at
1313
<https://gitlab.gnome.org/GNOME/libxml2/-/issues>.
14-
Please report *security issues* to our bug tracker as well. Make sure to
15-
mark the issue as *confidential*.
1614

1715
Documentation is available at
1816
<https://gitlab.gnome.org/GNOME/libxml2/-/wikis>
@@ -21,6 +19,14 @@ Documentation is available at
2119

2220
This code is released under the MIT License, see the Copyright file.
2321

22+
## Security
23+
24+
This is open-source software written by hobbyists, maintained by a single
25+
volunteer, badly tested, written in a memory-unsafe language and full of
26+
security bugs. It is foolish to use this software to process untrusted data.
27+
As such, we treat security issues like any other bug. Each security report
28+
we receive will be made public immediately and won't be prioritized.
29+
2430
## Build instructions
2531

2632
libxml2 can be built with GNU Autotools, CMake or meson.
@@ -47,25 +53,25 @@ The following options disable or enable code modules and relevant symbols:
4753
--with-c14n Canonical XML 1.0 support (on)
4854
--with-catalog XML Catalogs support (on)
4955
--with-debug debugging module (on)
56+
--with-docs Build documentation (off)
5057
--with-history history support for xmllint shell (off)
5158
--with-readline[=DIR] use readline in DIR for shell (off)
5259
--with-html HTML parser (on)
53-
--with-http HTTP support (off)
60+
--with-http ABI compatibility for removed HTTP support (off)
5461
--with-iconv[=DIR] iconv support (on)
5562
--with-icu ICU support (off)
5663
--with-iso8859x ISO-8859-X support if no iconv (on)
57-
--with-lzma[=DIR] use liblzma in DIR (off)
5864
--with-modules dynamic modules support (on)
5965
--with-output serialization support (on)
6066
--with-pattern xmlPattern selection interface (on)
6167
--with-push push parser interfaces (on)
62-
--with-python Python bindings (on)
68+
--with-python Python bindings (off)
6369
--with-reader xmlReader parsing interface (on)
6470
--with-regexps regular expressions support (on)
6571
--with-relaxng RELAX NG support (on)
6672
--with-sax1 older SAX1 interface (on)
6773
--with-schemas XML Schemas 1.0 support (on)
68-
--with-schematron Schematron support (on)
74+
--with-schematron Schematron support (off)
6975
--with-threads multithreading support (on)
7076
--with-thread-alloc per-thread malloc hooks (off)
7177
--with-valid DTD validation support (on)
@@ -77,6 +83,7 @@ The following options disable or enable code modules and relevant symbols:
7783

7884
Other options:
7985

86+
--prefix=DIR set installation prefix
8087
--with-minimum build a minimally sized library (off)
8188
--with-legacy maximum ABI compatibility (off)
8289

@@ -111,10 +118,10 @@ Example commands:
111118
Common CMake options include:
112119

113120
-D BUILD_SHARED_LIBS=OFF # build static libraries
114-
-D CMAKE_BUILD_TYPE=Release # specify build type
121+
-D CMAKE_BUILD_TYPE=Release # specify build type (single-config)
122+
--config Release # specify build type (multi-config)
115123
-D CMAKE_INSTALL_PREFIX=/usr/local # specify the install path
116124
-D LIBXML2_WITH_ICONV=OFF # disable iconv
117-
-D LIBXML2_WITH_PYTHON=OFF # disable Python
118125
-D LIBXML2_WITH_ZLIB=ON # enable zlib
119126

120127
You can also open the libxml source directory with its CMakeLists.txt
@@ -133,8 +140,7 @@ See the `meson_options.txt` file for options. For example:
133140

134141
-Dprefix=$prefix
135142
-Dhistory=enabled
136-
-Dhttp=enabled
137-
-Dschematron=disabled
143+
-Dschemas=disabled
138144
-Dzlib=enabled
139145

140146
## Dependencies
@@ -147,12 +153,15 @@ iconv, you need an external libiconv library, for example
147153
[GNU libiconv](https://www.gnu.org/software/libiconv/). Using
148154
[ICU](https://icu.unicode.org/) is also supported but discouraged.
149155

150-
If enabled, libxml uses [libz](https://zlib.net/) or
151-
[liblzma](https://tukaani.org/xz/) to support reading compressed files.
152-
Use of this feature is discouraged.
153-
154156
The xmllint executable uses libreadline and libhistory if enabled.
155157

158+
### Build requirements
159+
160+
Besides build system tools, only a C compiler should be required.
161+
Reconfiguration of the Autotools build requires the pkg.m4 macro from
162+
pkg-config. Building the documentation requires Doxygen, xsltproc and the
163+
DocBook 4 XSLT stylesheets. Building the Python bindings requires Doxygen.
164+
156165
## Contributing
157166

158167
The current version of the code can be found in GNOME's GitLab at

README.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
libxml2 Windows build with Visual Studio.
44

5-
This version is libxml2-2.14.6.
6-
7-
Note that LZMA support is only available for VS2013 or later.
5+
This version is libxml2-2.15.0.
86

97
To build, simply open the required solution file, and
108
you know how to use Visual Studio, right?
@@ -13,7 +11,6 @@ you know how to use Visual Studio, right?
1311
Depends on:
1412
* libiconv-win-build
1513
* zlib-win-build
16-
* xz-win-build (VS2013 or later)
1714

1815
There are hard references assuming all these sit next to libxml2-win-build.
1916

@@ -22,7 +19,6 @@ Basically, in a command prompt:
2219
> \> cd {somewhere}\\
2320
> \> git clone https://github.com/kiyolee/libiconv-win-build.git
2421
> \> git clone https://github.com/kiyolee/zlib-win-build.git
25-
> \> git clone https://github.com/kiyolee/xz-win-build.git (VS2013 or later)
2622
> \> git clone https://github.com/kiyolee/libxml2-win-build.git
2723
2824
Build all these dependencies in the suggested order as shown above and finally libxml2, with the same corresponding Visual Studio solution of course.

0 commit comments

Comments
 (0)