.gitlab-ci.yml


Log

Author Commit Date CI Message
Nick Wellnhofer 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.
Nick Wellnhofer 0173fac7 2025-05-03T02:12:46 gitlab-ci: Only build documentation once per CMake platform
Nick Wellnhofer 488939b6 2025-05-02T23:05:35 gitlab-ci: Enable documentation in more tests
Nick Wellnhofer c8d1b7ba 2025-05-02T20:32:57 gitlab-ci: Treat Doxygen warnings as error
Nick Wellnhofer a5898c2a 2025-05-02T15:08:19 doc: Add redirects for GitLab pages
Nick Wellnhofer 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.
Nick Wellnhofer 95c2c523 2025-04-28T16:38:42 doc: Remove apibuild.py and old documentation The last weird maintenance script is gone now.
Nick Wellnhofer 85dce180 2025-04-20T14:08:36 gitlab-ci: Readd gcc/autoconf job with Python
Nick Wellnhofer 70d18dde 2025-04-19T17:34:35 gitlab-ci: Add xmlstarlet to downstream tests Use my private fork for now.
Nick Wellnhofer 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.
Nick Wellnhofer fa931566 2025-04-14T17:34:39 build: Disable Python bindings by default
Nick Wellnhofer 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.
Nick Wellnhofer dade6397 2025-03-27T15:50:24 Bump version
Nick Wellnhofer e091d9fb 2025-03-27T14:38:33 Release v2.14.0
Nick Wellnhofer 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.
Nick Wellnhofer 5c0484c3 2025-03-11T19:18:07 gitlab-ci: Add downstream job for lxml
Nick Wellnhofer 5338e43f 2025-03-11T17:15:01 gitlab-ci: Add downstream job for PHP
Nick Wellnhofer 5b56ed9b 2025-03-05T12:03:52 gitlab-ci: Reenable cmake:mingw For some reason, it's working again.
Nick Wellnhofer 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.
Nick Wellnhofer 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.
Nick Wellnhofer 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.
Nick Wellnhofer 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.
Nick Wellnhofer 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.
Nick Wellnhofer 5ca4ce6f 2024-12-09T23:28:38 gitlab-ci: Add "dist" job to build distribution tarball Prepare for GNOME Release Service.
Nick Wellnhofer c45c15f5 2024-07-04T15:15:58 ci: Add job for perl-XML-LibXML
Mike Dalessio 446a3610 2024-07-03T13:56:41 test: add a downstream integration test job for nokogiri Related to #758
Nick Wellnhofer 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.
Nick Wellnhofer 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.
Nick Wellnhofer 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.
Nick Wellnhofer 5f75c956 2024-04-28T22:57:02 doc: Remove tutorial The tutorial was moved to the Wiki: https://gitlab.gnome.org/GNOME/libxml2/-/wikis/Tutorial
Nick Wellnhofer d381e5de 2024-04-28T21:14:32 doc: Move doc/examples to example
Vincent Torri 5732ce56 2024-04-04T12:14:46 meson: Initial commit
Nick Wellnhofer 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.
Nick Wellnhofer 2cebf209 2024-01-10T15:37:50 gitlab-ci: Disable Python tests on MinGW for now See #658.
Nick Wellnhofer 1734d27d 2023-10-02T15:04:18 encoding: Suppress -Wcast-align warnings
Nick Wellnhofer 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.
Nick Wellnhofer c5989473 2023-09-01T14:52:11 dict: Use thread-local storage for PRNG state
Nick Wellnhofer 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.
Nick Wellnhofer 1e8ab697 2023-05-25T03:03:33 gitlab-ci: Lower _XOPEN_SOURCE value
Nick Wellnhofer 8c2e508b 2023-03-12T14:45:14 gitlab-ci: Enable all "integer" sanitizers
Nick Wellnhofer 6fd89041 2023-01-22T19:42:41 malloc-fail: Fix use-after-free in xmlParseStartTag2 Fix error handling in xmlCtxtGrowAttrs. Found with libFuzzer, see #344.
Ross Burton 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.
Nick Wellnhofer 138c897d 2022-11-22T14:57:58 gitlab-ci: Treat compiler warnings as errors on MSVC
Nick Wellnhofer 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
Nick Wellnhofer 80e43d1b 2022-10-24T01:08:25 gitlab-ci: Reenable LeakSanitizer Let's hope it works on the asan runners.
Nick Wellnhofer 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.
Nick Wellnhofer f2392dc4 2022-09-09T13:51:58 gitlab-ci: Allow cast-align warnings from clang
Nick Wellnhofer 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.
Nick Wellnhofer c52dd494 2022-09-06T23:27:01 gitlab-ci: Move MSVC test to separate script
Nick Wellnhofer ea78427d 2022-09-06T22:46:07 gitlab-ci: Fix SUFFIX, remove MINGW_PATH
Nick Wellnhofer e4bdbf3d 2022-09-06T21:29:24 gitlab-ci: Consolidate CMake test scripts
Nick Wellnhofer 861466bf 2022-09-06T20:32:08 gitlab-ci: Only install MinGW autotools if needed
Nick Wellnhofer 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.
Nick Wellnhofer 7ab3228f 2022-09-06T18:32:55 gitlab-ci: Install 7-Zip using the .msi So we don't need cmake to extract a file.
Nick Wellnhofer c63b2692 2022-09-05T22:50:45 gitlab-ci: Disable MSan for now MSan seems broken on Ubuntu 22.04.
Nick Wellnhofer 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/
Nick Wellnhofer 460ba0cb 2022-09-04T16:00:19 Add CI job for MinGW/Autotools
Nick Wellnhofer 0cc9c1d1 2022-09-04T15:35:47 Consolidate CI scripts
Nick Wellnhofer 89aeb4df 2022-09-04T18:44:52 Allow empty MINGW_PACKAGE_PREFIX
Nick Wellnhofer efc0e85c 2022-09-04T15:26:47 Move Dockerfile to .gitlab-ci directory
Nick Wellnhofer 243fdbc3 2022-09-04T19:13:14 cmake: Don't check for Python 2
Nick Wellnhofer f9fcb2c4 2022-09-04T04:47:48 Revert "CI job for MingW64/Autotools" This reverts commit 6bfebf4d5886bd5f2a3979ceedc27ebd6c3c5009.
Nick Wellnhofer 6bfebf4d 2022-09-04T04:04:45 CI job for MingW64/Autotools
Nick Wellnhofer 202b8e19 2022-09-01T06:52:02 cmake: Enable GCC compiler warnings
Nick Wellnhofer b1a09618 2022-08-29T17:21:19 Migrate from PyEval_ to PyObject_ PyEval_ functions are deprecated. Fixes #208.
Nick Wellnhofer 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
Nick Wellnhofer ebc04fec 2022-08-26T15:10:06 Allow Python deprecation warnings for now See #208.
Nick Wellnhofer 65b01647 2022-04-21T06:27:33 Build Autotools CI tests out of source tree (VPATH)
Nick Wellnhofer ad098030 2022-04-21T06:23:55 Add --with-minimum build to CI tests
Nick Wellnhofer 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.
Nick Wellnhofer dbc23ed3 2022-04-13T17:02:50 Also build CI tests with -Werror
Nick Wellnhofer e13c8081 2022-04-13T16:45:57 Run CI tests with FTP and legacy modules These modules are disabled by default. Enable them when testing.
Nick Wellnhofer f0ba4da1 2022-04-03T14:30:03 Add CI job for static build
Nick Wellnhofer c2ee4a20 2022-04-02T16:55:18 Fix GitLab pages job
David Seifert 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
Nick Wellnhofer ff367708 2022-03-02T17:50:00 Make examples a standalone HTML page Also upload to GitLab Pages.
Nick Wellnhofer 0a6a79b2 2022-02-12T21:36:27 Try again to only build GitLab Pages on main repo
Nick Wellnhofer a3aca203 2022-02-12T21:33:53 Try again to only build GitLab Pages on main repo
Nick Wellnhofer 15111c82 2022-02-12T21:25:25 Only build GitLab Pages on main repo
Nick Wellnhofer 2017cae6 2022-02-12T20:02:51 Upload documentation to GitLab pages
Nick Wellnhofer 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.
Nick Wellnhofer 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
Markus Rickert 09320f05 2021-02-21T14:26:40 Add CI for MSVC x86
Markus Rickert 2065d340 2021-02-05T23:40:18 Add CI for CMake on MSVC
Markus Rickert 1c4f9a6d 2020-11-25T18:01:51 Require dependencies based on enabled CMake options
Markus Rickert e028d293 2020-11-19T17:58:46 Add CI for CMake on Linux and MinGW
Nick Wellnhofer 0ace6c4d 2020-11-19T17:35:11 Add CI test for Python 3
Nick Wellnhofer af893a58 2020-06-11T16:08:16 Update GitLab CI container
Nick Wellnhofer 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
Nick Wellnhofer 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.
Nick Wellnhofer a5bb6aaa 2019-10-29T14:21:54 Run XML conformance tests under CI Also add llvm to Docker image so that backtraces can be symbolized.
Nick Wellnhofer 55d95dcf 2019-10-20T18:03:21 Update GitLab CI config - Update Dockerfile - Don't configure with -Werror - Don't mention Travis in CONTRIBUTING
Nick Wellnhofer 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.