|
46f05ea4
|
2025-05-09T00:21:47
|
|
html: Rework meta charset handling
Don't use encoding from meta tags when serializing. Only use the value
in `doc->encoding`, matching the XML serializer. This is the actual
encoding used when parsing.
Stop modifying the input document by setting meta tags before
serializing. Meta tags are now injected during serialization.
Add full support for <meta charset=""> which is also used when adding
meta tags.
Align with HTML5 and implement the "algorithm for extracting a character
encoding from a meta element". Only modify the encoding substring in
Content-Type meta tags.
Only switch encoding once when parsing.
Fix htmlSaveFileFormat with a NULL encoding not to declare a misleading
UTF-8 charset.
Fixes #909.
|
|
0173fac7
|
2025-05-03T02:12:46
|
|
gitlab-ci: Only build documentation once per CMake platform
|
|
488939b6
|
2025-05-02T23:05:35
|
|
gitlab-ci: Enable documentation in more tests
|
|
c8d1b7ba
|
2025-05-02T20:32:57
|
|
gitlab-ci: Treat Doxygen warnings as error
|
|
a5898c2a
|
2025-05-02T15:08:19
|
|
doc: Add redirects for GitLab pages
|
|
bbe5827c
|
2025-04-28T17:21:05
|
|
doc: Build docs with Doxygen and xsltproc
Build the documentation as part of the build process with support for
all build systems. This adds a new configuration option --with-docs to
build documentation. Required tools are Doxygen, xsltproc and the
DocBook 4 XSLT stylesheets. Doxygen will also be required to build the
Python bindings.
|
|
95c2c523
|
2025-04-28T16:38:42
|
|
doc: Remove apibuild.py and old documentation
The last weird maintenance script is gone now.
|
|
85dce180
|
2025-04-20T14:08:36
|
|
gitlab-ci: Readd gcc/autoconf job with Python
|
|
70d18dde
|
2025-04-19T17:34:35
|
|
gitlab-ci: Add xmlstarlet to downstream tests
Use my private fork for now.
|
|
adc7913d
|
2025-04-19T16:46:21
|
|
gitlab-ci: Avoid redundant builds of libxml2 and libxslt
Build and install libxml2 and libxslt in a new "gcc-install" job and
publish the build as artifact. Make the downstream tests use the
artifact instead of building the libraries redundantly.
|
|
fa931566
|
2025-04-14T17:34:39
|
|
build: Disable Python bindings by default
|
|
81c09e33
|
2025-03-27T17:00:26
|
|
gitlab-ci: Don't hardcode release version
Thanks to Jan Tojnar who found a work-around:
https://gitlab.gnome.org/GNOME/calls/-/merge_requests/770
This uses the artifacts:reports:dotenv feature to pass environment
variables to the deploy stage:
https://docs.gitlab.com/ci/variables/#pass-an-environment-variable-to-another-job
I didn't test the change with the sandbox yet.
|
|
dade6397
|
2025-03-27T15:50:24
|
|
Bump version
|
|
e091d9fb
|
2025-03-27T14:38:33
|
|
Release v2.14.0
|
|
884c8996
|
2025-03-14T18:29:24
|
|
build: Don't make --with-legacy enable HTTP and LZMA
The --with-legacy option only enables --with-zlib for now.
|
|
5c0484c3
|
2025-03-11T19:18:07
|
|
gitlab-ci: Add downstream job for lxml
|
|
5338e43f
|
2025-03-11T17:15:01
|
|
gitlab-ci: Add downstream job for PHP
|
|
5b56ed9b
|
2025-03-05T12:03:52
|
|
gitlab-ci: Reenable cmake:mingw
For some reason, it's working again.
|
|
22ada0a0
|
2025-02-18T23:27:40
|
|
tests: Look for xmlconf in source directory
Add -d option to runxmlconf for automake.
Fix extraction of xmlconf.tar.gz on Windows.
Make runxmlconf work with Meson CI.
|
|
62d4697d
|
2025-02-02T16:43:25
|
|
gitlab-ci: Disable cmake:mingw for now
Executing /mingw64/bin/cmake.exe with any arguments fails without error
message and exit code 127 since 2025-01-21. I have no idea why.
|
|
ab62fc27
|
2024-12-27T14:58:30
|
|
gitlab-ci: Add --with-valid to medium config
Building --with-valid --without-regexps enables some rarely tested code.
There's an additional test failure in runxmlconf without regexps.
|
|
5320a4aa
|
2024-12-15T23:35:28
|
|
memory: Implement xmlGrowCapacity to safely grow arrays
xmlGrowCapacity makes sure that dynamic arrays don't grow beyond an
explicit maximum size. size_t considerations are also taken into account.
A macro XML_MAX_ITEMS is provided as default maximum with value
1 billion.
When fuzzing, the initial size is set to 1 to cause more reallocations.
This can require adjustments if callers really need larger arrays.
|
|
9c980d00
|
2024-12-13T12:41:46
|
|
gitlab-ci: Stop including gnome-release-service-ci-templates
This raises a "not found or access denied" error now.
|
|
5ca4ce6f
|
2024-12-09T23:28:38
|
|
gitlab-ci: Add "dist" job to build distribution tarball
Prepare for GNOME Release Service.
|
|
c45c15f5
|
2024-07-04T15:15:58
|
|
ci: Add job for perl-XML-LibXML
|
|
446a3610
|
2024-07-03T13:56:41
|
|
test: add a downstream integration test job for nokogiri
Related to #758
|
|
30be984a
|
2024-06-28T20:37:47
|
|
encoding: Rework ISO-8859-X conversion
Optimize code. Pass tables as context parameter. Check for
XML_ENC_ERR_SPACE.
|
|
669bd349
|
2024-06-12T18:20:01
|
|
xpointer: Remove support for XPointer locations
The latest spec for what it essentially an XPath extension seems to be
this working draft from 2002:
https://www.w3.org/TR/xptr-xpointer/
The xpointer() scheme is listed as "being reviewed" in the XPointer
registry since at least 2006. libxml2 seems to be the only modern
software that tries to implement this spec, but the code has many bugs
and quality issues.
If you configure --with-legacy, old symbols are retained for ABI
compatibility.
|
|
dba1ed85
|
2024-06-12T18:19:55
|
|
ftp: Remove FTP support
Remove the built-in FTP client. If you configure --with-legacy, old
symbols are retained for ABI compatibility.
|
|
5f75c956
|
2024-04-28T22:57:02
|
|
doc: Remove tutorial
The tutorial was moved to the Wiki:
https://gitlab.gnome.org/GNOME/libxml2/-/wikis/Tutorial
|
|
d381e5de
|
2024-04-28T21:14:32
|
|
doc: Move doc/examples to example
|
|
5732ce56
|
2024-04-04T12:14:46
|
|
meson: Initial commit
|
|
c978a5d8
|
2024-03-22T18:34:12
|
|
ci: Remove Python 2 job, update C89 job
Python 2 isn't supported on newer Ubuntu releases. Newer Python
releases have header files which aren't compatible with C89.
|
|
2cebf209
|
2024-01-10T15:37:50
|
|
gitlab-ci: Disable Python tests on MinGW for now
See #658.
|
|
1734d27d
|
2023-10-02T15:04:18
|
|
encoding: Suppress -Wcast-align warnings
|
|
fe1bfb34
|
2023-09-21T12:33:46
|
|
gitlab-ci: Add a "medium" config build
Also run CI tests with a build where most modules except a few are
disabled. This is the minimum configuration required for libxslt:
--with-tree --with-xpath --with-output --with-html
Also add --with-threads.
|
|
c5989473
|
2023-09-01T14:52:11
|
|
dict: Use thread-local storage for PRNG state
|
|
778cca38
|
2023-08-20T22:50:57
|
|
legacy: Add stubs for disabled modules
When legacy support is requested, always enable stubs for FTP and
XPointer location modules which were removed from the standard
configuration. Going forward, the --with-legacy configuration option
should be used to provide maximum ABI compatibility.
Fixes #433.
|
|
1e8ab697
|
2023-05-25T03:03:33
|
|
gitlab-ci: Lower _XOPEN_SOURCE value
|
|
8c2e508b
|
2023-03-12T14:45:14
|
|
gitlab-ci: Enable all "integer" sanitizers
|
|
6fd89041
|
2023-01-22T19:42:41
|
|
malloc-fail: Fix use-after-free in xmlParseStartTag2
Fix error handling in xmlCtxtGrowAttrs.
Found with libFuzzer, see #344.
|
|
b1b0df6e
|
2022-12-06T17:00:03
|
|
CI: disable modules in gcc:static build
When shared libraries are disabled we can't build loadable modules
either, so the testModule test can't work as the testdso.la target
doesn't build a module.
|
|
138c897d
|
2022-11-22T14:57:58
|
|
gitlab-ci: Treat compiler warnings as errors on MSVC
|
|
66f781cf
|
2022-10-24T14:56:26
|
|
gitlab-ci: Upgrade image to Ubuntu 22.10, reenable MSan
MSan and 64-bit stat was broken on Ubuntu 22.04 (glibc >= 2.33,
LLVM <= 14), see https://github.com/llvm/llvm-project/commit/1f82d0f7
|
|
80e43d1b
|
2022-10-24T01:08:25
|
|
gitlab-ci: Reenable LeakSanitizer
Let's hope it works on the asan runners.
|
|
d767c6be
|
2022-10-23T23:26:31
|
|
gitlab-ci: Fix llvm-symbolizer
Newer versions of llvm-symbolizer require libxml2 themselves. Running
a test program with LD_LIBRARY_PATH set to .libs makes llvm-symbolizer
pick up the tested development version of libxml2 which breaks
completely if the build is instrumented with ASan. Add a wrapper script
that invokes llvm-symbolizer with an empty LD_LIBRARY_PATH.
|
|
f2392dc4
|
2022-09-09T13:51:58
|
|
gitlab-ci: Allow cast-align warnings from clang
|
|
f597eff8
|
2022-09-07T18:18:06
|
|
autotools: Fix winsock detection
Hardcode the required library on MinGW because winsock uses non-standard
calling conventions on 32-bit Windows which makes AC_SEARCH_LIBS fail.
Should fix #406.
|
|
c52dd494
|
2022-09-06T23:27:01
|
|
gitlab-ci: Move MSVC test to separate script
|
|
ea78427d
|
2022-09-06T22:46:07
|
|
gitlab-ci: Fix SUFFIX, remove MINGW_PATH
|
|
e4bdbf3d
|
2022-09-06T21:29:24
|
|
gitlab-ci: Consolidate CMake test scripts
|
|
861466bf
|
2022-09-06T20:32:08
|
|
gitlab-ci: Only install MinGW autotools if needed
|
|
e86ede09
|
2022-09-06T18:24:25
|
|
gitlab-ci: Only install cmake MinGW package if needed
On MinGW, cmake requires curl which requires nghttp2 which requires
libxml2. But having a system libxml2 interferes with the Python tests
for now. Ultimately, we should use Python's os.add_dll_directory() on
Windows. I'm not sure why the current solution using PATH even works.
|
|
7ab3228f
|
2022-09-06T18:32:55
|
|
gitlab-ci: Install 7-Zip using the .msi
So we don't need cmake to extract a file.
|
|
c63b2692
|
2022-09-05T22:50:45
|
|
gitlab-ci: Disable MSan for now
MSan seems broken on Ubuntu 22.04.
|
|
98acf28f
|
2022-09-04T22:12:32
|
|
Use $MSYSTEM and 'bash -lc' in MinGW CI
Setting the $MSYSTEM environment variable and invoking shell scripts
with 'bash -lc' sets up the correct MinGW environment.
See https://www.msys2.org/docs/ci/
|
|
460ba0cb
|
2022-09-04T16:00:19
|
|
Add CI job for MinGW/Autotools
|
|
0cc9c1d1
|
2022-09-04T15:35:47
|
|
Consolidate CI scripts
|
|
89aeb4df
|
2022-09-04T18:44:52
|
|
Allow empty MINGW_PACKAGE_PREFIX
|
|
efc0e85c
|
2022-09-04T15:26:47
|
|
Move Dockerfile to .gitlab-ci directory
|
|
243fdbc3
|
2022-09-04T19:13:14
|
|
cmake: Don't check for Python 2
|
|
f9fcb2c4
|
2022-09-04T04:47:48
|
|
Revert "CI job for MingW64/Autotools"
This reverts commit 6bfebf4d5886bd5f2a3979ceedc27ebd6c3c5009.
|
|
6bfebf4d
|
2022-09-04T04:04:45
|
|
CI job for MingW64/Autotools
|
|
202b8e19
|
2022-09-01T06:52:02
|
|
cmake: Enable GCC compiler warnings
|
|
b1a09618
|
2022-08-29T17:21:19
|
|
Migrate from PyEval_ to PyObject_
PyEval_ functions are deprecated.
Fixes #208.
|
|
47803697
|
2022-08-26T16:31:55
|
|
Work around strange -fsanitize=integer issue
With clang 14, __attribute__ ((nosanitize)) stops working with
-fsanitize=undefined,integer
Using the following works (and should be equivalent)
-fsanitize=undefined,unsigned-integer-overflow,implicit-conversion
|
|
ebc04fec
|
2022-08-26T15:10:06
|
|
Allow Python deprecation warnings for now
See #208.
|
|
65b01647
|
2022-04-21T06:27:33
|
|
Build Autotools CI tests out of source tree (VPATH)
|
|
ad098030
|
2022-04-21T06:23:55
|
|
Add --with-minimum build to CI tests
|
|
67070107
|
2022-04-20T23:17:14
|
|
Add configuration flag for XPointer locations support
Add a new configuration flag that controls whether the outdated support
for XPointer locations (ranges and points) is enabled.
--with-xptr-locs # Autotools
LIBXML2_WITH_XPTR_LOCS # CMake
The latest spec for what it essentially an XPath extension seems to be
this working draft from 2002:
https://www.w3.org/TR/xptr-xpointer/
The xpointer() scheme is listed as "being reviewed" in the XPointer
registry since at least 2006. libxml2 seems to be the only modern
software that tries to implement this spec, but the code has many bugs
and quality issues.
The flag defaults to "off" and support for this extensions has to be
requested explicitly. The relevant API functions are deprecated.
|
|
dbc23ed3
|
2022-04-13T17:02:50
|
|
Also build CI tests with -Werror
|
|
e13c8081
|
2022-04-13T16:45:57
|
|
Run CI tests with FTP and legacy modules
These modules are disabled by default. Enable them when testing.
|
|
f0ba4da1
|
2022-04-03T14:30:03
|
|
Add CI job for static build
|
|
c2ee4a20
|
2022-04-02T16:55:18
|
|
Fix GitLab pages job
|
|
d9335077
|
2022-03-29T13:37:16
|
|
Use AM_PATH_PYTHON/PKG_CHECK_MODULES for python bindings
* `AM_PATH_PYTHON` is a much more common idiom for building
and installing python modules than writing your own.
* It also makes cross-compiling the python bindings possible.
Previously the `PYTHON_CFLAGS`/`PYTHON_LIBS` would have been
based on the `--build` python and not the `--host` python.
By using `pkg-config`, we can always redirect the python-X.Y.pc.
Bug: https://bugs.gentoo.org/582130
|
|
ff367708
|
2022-03-02T17:50:00
|
|
Make examples a standalone HTML page
Also upload to GitLab Pages.
|
|
0a6a79b2
|
2022-02-12T21:36:27
|
|
Try again to only build GitLab Pages on main repo
|
|
a3aca203
|
2022-02-12T21:33:53
|
|
Try again to only build GitLab Pages on main repo
|
|
15111c82
|
2022-02-12T21:25:25
|
|
Only build GitLab Pages on main repo
|
|
2017cae6
|
2022-02-12T20:02:51
|
|
Upload documentation to GitLab pages
|
|
53983804
|
2022-01-25T03:08:22
|
|
Run CI tests with UBSan implicit-conversion checks
This enables the remaining checks from the "integer" group:
- implicit-unsigned-integer-truncation
- implicit-signed-integer-truncation
- implicit-integer-sign-change
These checks can find all kinds of bugs and only require explicit casts
if integer truncation or sign change is really intended.
|
|
ce2fbaa8
|
2021-02-22T22:01:57
|
|
Only run a few CI tests unless scheduled
Only run the following tests by default
- gcc
- clang:asan
- cmake:mingw:w64-x86_64:shared
- cmake:msvc:v141:x64:shared
|
|
09320f05
|
2021-02-21T14:26:40
|
|
Add CI for MSVC x86
|
|
2065d340
|
2021-02-05T23:40:18
|
|
Add CI for CMake on MSVC
|
|
1c4f9a6d
|
2020-11-25T18:01:51
|
|
Require dependencies based on enabled CMake options
|
|
e028d293
|
2020-11-19T17:58:46
|
|
Add CI for CMake on Linux and MinGW
|
|
0ace6c4d
|
2020-11-19T17:35:11
|
|
Add CI test for Python 3
|
|
af893a58
|
2020-06-11T16:08:16
|
|
Update GitLab CI container
|
|
2a7b6684
|
2020-03-02T11:52:52
|
|
Disable LeakSanitizer
The GitLab runner doesn't run in privileged mode anymore [1], at least
for projects outside the GNOME group. Disable LeakSanitizer for now
as it needs the ptrace capability.
[1] https://gitlab.gnome.org/Infrastructure/Infrastructure/issues/251
|
|
db0c0450
|
2019-11-02T15:14:10
|
|
Enable more undefined behavior sanitizers
Minor fix to xmlStringLenGetNodeList to avoid a pointer overflow
during API test.
Enable pointer-overflow and unsigned-integer-overflow sanitizers in CI
tests. Technically, unsigned integer overflows aren't undefined
behavior, but they typically indicate programming errors. Some hash
functions that really require unsigned integer overflows have already
been annotated.
|
|
a5bb6aaa
|
2019-10-29T14:21:54
|
|
Run XML conformance tests under CI
Also add llvm to Docker image so that backtraces can be symbolized.
|
|
55d95dcf
|
2019-10-20T18:03:21
|
|
Update GitLab CI config
- Update Dockerfile
- Don't configure with -Werror
- Don't mention Travis in CONTRIBUTING
|
|
61f2abb1
|
2019-10-04T00:21:24
|
|
Enable continuous integration via GitLab CI
Port the Travis CI setup to GitLab. We currently run three builds:
- GCC with -std=c89
- clang with ASan and UBSan
- clang with MSan
Closes #110.
|