git: 4543ef516683 - main - MFV: expat 2.6.0.

From: Xin LI <delphij_at_FreeBSD.org>
Date: Sun, 18 Feb 2024 03:10:39 UTC
The branch main has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=4543ef516683042d46f3bd3bb8a4f3f746e00499

commit 4543ef516683042d46f3bd3bb8a4f3f746e00499
Merge: 8b67c670a49b 345cf360f8b8
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2024-02-17 21:56:56 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2024-02-17 22:04:14 +0000

    MFV: expat 2.6.0.
    
    MFC after:      3 days

 contrib/expat/Changes                              |   118 +-
 contrib/expat/Makefile.am                          |    10 +-
 contrib/expat/Makefile.in                          |    22 +-
 contrib/expat/README.md                            |     7 +-
 contrib/expat/configure.ac                         |    43 +-
 contrib/expat/doc/Makefile.in                      |    10 +-
 contrib/expat/doc/ok.min.css                       |     4 +-
 contrib/expat/doc/reference.html                   |   222 +-
 contrib/expat/doc/xmlwf.1                          |    24 +-
 contrib/expat/doc/xmlwf.xml                        |    50 +-
 contrib/expat/examples/Makefile.am                 |     9 +-
 contrib/expat/examples/Makefile.in                 |    48 +-
 contrib/expat/examples/element_declarations.c      |   234 +
 contrib/expat/expat_config.h.in                    |     8 +-
 contrib/expat/fuzz/xml_parse_fuzzer.c              |    53 +-
 contrib/expat/fuzz/xml_parsebuffer_fuzzer.c        |    68 +-
 contrib/expat/lib/Makefile.in                      |    10 +-
 contrib/expat/lib/expat.h                          |    28 +-
 contrib/expat/lib/internal.h                       |     8 +-
 contrib/expat/lib/siphash.h                        |    10 +-
 contrib/expat/lib/xmlparse.c                       |   558 +-
 contrib/expat/lib/xmlrole.c                        |     6 +-
 contrib/expat/lib/xmlrole.h                        |     6 +-
 contrib/expat/lib/xmltok.c                         |    29 +-
 contrib/expat/lib/xmltok.h                         |     8 +-
 contrib/expat/lib/xmltok_impl.c                    |     2 +-
 contrib/expat/tests/Makefile.am                    |    61 +-
 contrib/expat/tests/Makefile.in                    |   261 +-
 contrib/expat/tests/acc_tests.c                    |   396 +
 contrib/expat/tests/acc_tests.h                    |    56 +
 contrib/expat/tests/acc_tests_cxx.cpp              |    32 +
 contrib/expat/tests/alloc_tests.c                  |  2127 ++++
 contrib/expat/tests/alloc_tests.h                  |    56 +
 contrib/expat/tests/alloc_tests_cxx.cpp            |    32 +
 contrib/expat/tests/basic_tests.c                  |  6076 +++++++++
 contrib/expat/tests/basic_tests.h                  |    56 +
 contrib/expat/tests/basic_tests_cxx.cpp            |    32 +
 contrib/expat/tests/benchmark/Makefile.in          |    10 +-
 contrib/expat/tests/benchmark/benchmark.c          |    14 +-
 contrib/expat/tests/chardata.c                     |    16 +-
 contrib/expat/tests/chardata_cxx.cpp               |    32 +
 contrib/expat/tests/common.c                       |   325 +
 contrib/expat/tests/common.h                       |   162 +
 contrib/expat/tests/common_cxx.cpp                 |    32 +
 contrib/expat/tests/dummy.c                        |   261 +
 contrib/expat/tests/dummy.h                        |   150 +
 contrib/expat/tests/dummy_cxx.cpp                  |    32 +
 contrib/expat/tests/handlers.c                     |  1932 +++
 contrib/expat/tests/handlers.h                     |   595 +
 contrib/expat/tests/handlers_cxx.cpp               |    32 +
 contrib/expat/tests/memcheck.c                     |    21 +-
 contrib/expat/tests/memcheck_cxx.cpp               |    32 +
 contrib/expat/tests/minicheck.c                    |    58 +-
 contrib/expat/tests/minicheck.h                    |    79 +-
 contrib/expat/tests/minicheck_cxx.cpp              |    32 +
 contrib/expat/tests/misc_tests.c                   |   523 +
 contrib/expat/tests/misc_tests.h                   |    56 +
 contrib/expat/tests/misc_tests_cxx.cpp             |    32 +
 contrib/expat/tests/ns_tests.c                     |   754 ++
 contrib/expat/tests/ns_tests.h                     |    56 +
 contrib/expat/tests/ns_tests_cxx.cpp               |    32 +
 contrib/expat/tests/nsalloc_tests.c                |  1537 +++
 contrib/expat/tests/nsalloc_tests.h                |    56 +
 contrib/expat/tests/nsalloc_tests_cxx.cpp          |    32 +
 contrib/expat/tests/runtests.c                     | 12479 +------------------
 .../tests/{runtestspp.cpp => runtests_cxx.cpp}     |     4 +-
 contrib/expat/tests/structdata.c                   |    37 +-
 contrib/expat/tests/structdata_cxx.cpp             |    32 +
 contrib/expat/xmlwf/Makefile.in                    |    10 +-
 contrib/expat/xmlwf/readfilemap.c                  |    21 +-
 contrib/expat/xmlwf/xmlfile.c                      |    16 +-
 contrib/expat/xmlwf/xmlfile.h                      |     4 +-
 contrib/expat/xmlwf/xmlwf.c                        |   156 +-
 contrib/expat/xmlwf/xmlwf_helpgen.py               |    31 +-
 lib/libexpat/expat_config.h                        |    16 +-
 lib/libexpat/libbsdxml.3                           |     4 +-
 76 files changed, 17368 insertions(+), 13115 deletions(-)

diff --cc contrib/expat/README.md
index e5e237fc9496,000000000000..43c4f4f3dbb3
mode 100644,000000..100644
--- a/contrib/expat/README.md
+++ b/contrib/expat/README.md
@@@ -1,269 -1,0 +1,270 @@@
- [![Run Linux Travis CI tasks](https://github.com/libexpat/libexpat/actions/workflows/linux.yml/badge.svg)](https://github.com/libexpat/libexpat/actions/workflows/linux.yml)
++[![Run Linux CI tasks](https://github.com/libexpat/libexpat/actions/workflows/linux.yml/badge.svg)](https://github.com/libexpat/libexpat/actions/workflows/linux.yml)
 +[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/libexpat/libexpat?svg=true)](https://ci.appveyor.com/project/libexpat/libexpat)
 +[![Packaging status](https://repology.org/badge/tiny-repos/expat.svg)](https://repology.org/metapackage/expat/versions)
 +[![Downloads SourceForge](https://img.shields.io/sourceforge/dt/expat?label=Downloads%20SourceForge)](https://sourceforge.net/projects/expat/files/)
 +[![Downloads GitHub](https://img.shields.io/github/downloads/libexpat/libexpat/total?label=Downloads%20GitHub)](https://github.com/libexpat/libexpat/releases)
 +
 +
- # Expat, Release 2.5.0
++# Expat, Release 2.6.0
 +
- This is Expat, a C library for parsing XML, started by
++This is Expat, a C99 library for parsing
++[XML 1.0 Fourth Edition](https://www.w3.org/TR/2006/REC-xml-20060816/), started by
 +[James Clark](https://en.wikipedia.org/wiki/James_Clark_%28programmer%29) in 1997.
 +Expat is a stream-oriented XML parser.  This means that you register
 +handlers with the parser before starting the parse.  These handlers
 +are called when the parser discovers the associated structures in the
 +document being parsed.  A start tag is an example of the kind of
 +structures for which you may register handlers.
 +
 +Expat supports the following compilers:
 +
 +- GNU GCC >=4.5
 +- LLVM Clang >=3.5
 +- Microsoft Visual Studio >=15.0/2017 (rolling `${today} minus 5 years`)
 +
 +Windows users can use the
 +[`expat-win32bin-*.*.*.{exe,zip}` download](https://github.com/libexpat/libexpat/releases),
 +which includes both pre-compiled libraries and executables, and source code for
 +developers.
 +
 +Expat is [free software](https://www.gnu.org/philosophy/free-sw.en.html).
 +You may copy, distribute, and modify it under the terms of the License
 +contained in the file
 +[`COPYING`](https://github.com/libexpat/libexpat/blob/master/expat/COPYING)
 +distributed with this package.
 +This license is the same as the MIT/X Consortium license.
 +
 +
 +## Using libexpat in your CMake-Based Project
 +
 +There are two ways of using libexpat with CMake:
 +
 +### a) Module Mode
 +
 +This approach leverages CMake's own [module `FindEXPAT`](https://cmake.org/cmake/help/latest/module/FindEXPAT.html).
 +
 +Notice the *uppercase* `EXPAT` in the following example:
 +
 +```cmake
 +cmake_minimum_required(VERSION 3.0)  # or 3.10, see below
 +
 +project(hello VERSION 1.0.0)
 +
 +find_package(EXPAT 2.2.8 MODULE REQUIRED)
 +
 +add_executable(hello
 +    hello.c
 +)
 +
 +# a) for CMake >=3.10 (see CMake's FindEXPAT docs)
 +target_link_libraries(hello PUBLIC EXPAT::EXPAT)
 +
 +# b) for CMake >=3.0
 +target_include_directories(hello PRIVATE ${EXPAT_INCLUDE_DIRS})
 +target_link_libraries(hello PUBLIC ${EXPAT_LIBRARIES})
 +```
 +
 +### b) Config Mode
 +
 +This approach requires files from…
 +
 +- libexpat >=2.2.8 where packaging uses the CMake build system
 +or
 +- libexpat >=2.3.0 where packaging uses the GNU Autotools build system
 +  on Linux
 +or
 +- libexpat >=2.4.0 where packaging uses the GNU Autotools build system
 +  on macOS or MinGW.
 +
 +Notice the *lowercase* `expat` in the following example:
 +
 +```cmake
 +cmake_minimum_required(VERSION 3.0)
 +
 +project(hello VERSION 1.0.0)
 +
 +find_package(expat 2.2.8 CONFIG REQUIRED char dtd ns)
 +
 +add_executable(hello
 +    hello.c
 +)
 +
 +target_link_libraries(hello PUBLIC expat::expat)
 +```
 +
 +
 +## Building from a Git Clone
 +
 +If you are building Expat from a check-out from the
 +[Git repository](https://github.com/libexpat/libexpat/),
 +you need to run a script that generates the configure script using the
 +GNU autoconf and libtool tools.  To do this, you need to have
 +autoconf 2.58 or newer. Run the script like this:
 +
 +```console
 +./buildconf.sh
 +```
 +
 +Once this has been done, follow the same instructions as for building
 +from a source distribution.
 +
 +
 +## Building from a Source Distribution
 +
 +### a) Building with the configure script (i.e. GNU Autotools)
 +
 +To build Expat from a source distribution, you first run the
 +configuration shell script in the top level distribution directory:
 +
 +```console
 +./configure
 +```
 +
 +There are many options which you may provide to configure (which you
 +can discover by running configure with the `--help` option).  But the
 +one of most interest is the one that sets the installation directory.
 +By default, the configure script will set things up to install
 +libexpat into `/usr/local/lib`, `expat.h` into `/usr/local/include`, and
 +`xmlwf` into `/usr/local/bin`.  If, for example, you'd prefer to install
 +into `/home/me/mystuff/lib`, `/home/me/mystuff/include`, and
 +`/home/me/mystuff/bin`, you can tell `configure` about that with:
 +
 +```console
 +./configure --prefix=/home/me/mystuff
 +```
 +
 +Another interesting option is to enable 64-bit integer support for
 +line and column numbers and the over-all byte index:
 +
 +```console
 +./configure CPPFLAGS=-DXML_LARGE_SIZE
 +```
 +
 +However, such a modification would be a breaking change to the ABI
 +and is therefore not recommended for general use &mdash; e.g. as part of
 +a Linux distribution &mdash; but rather for builds with special requirements.
 +
 +After running the configure script, the `make` command will build
 +things and `make install` will install things into their proper
 +location.  Have a look at the `Makefile` to learn about additional
 +`make` options.  Note that you need to have write permission into
 +the directories into which things will be installed.
 +
 +If you are interested in building Expat to provide document
 +information in UTF-16 encoding rather than the default UTF-8, follow
 +these instructions (after having run `make distclean`).
 +Please note that we configure with `--without-xmlwf` as xmlwf does not
 +support this mode of compilation (yet):
 +
 +1. Mass-patch `Makefile.am` files to use `libexpatw.la` for a library name:
 +   <br/>
 +   `find -name Makefile.am -exec sed
 +       -e 's,libexpat\.la,libexpatw.la,'
 +       -e 's,libexpat_la,libexpatw_la,'
 +       -i {} +`
 +
 +1. Run `automake` to re-write `Makefile.in` files:<br/>
 +   `automake`
 +
 +1. For UTF-16 output as unsigned short (and version/error strings as char),
 +   run:<br/>
 +   `./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf`<br/>
 +   For UTF-16 output as `wchar_t` (incl. version/error strings), run:<br/>
 +   `./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T
 +       --without-xmlwf`
 +   <br/>Note: The latter requires libc compiled with `-fshort-wchar`, as well.
 +
 +1. Run `make` (which excludes xmlwf).
 +
 +1. Run `make install` (again, excludes xmlwf).
 +
 +Using `DESTDIR` is supported.  It works as follows:
 +
 +```console
 +make install DESTDIR=/path/to/image
 +```
 +
 +overrides the in-makefile set `DESTDIR`, because variable-setting priority is
 +
 +1. commandline
 +1. in-makefile
 +1. environment
 +
 +Note: This only applies to the Expat library itself, building UTF-16 versions
 +of xmlwf and the tests is currently not supported.
 +
 +When using Expat with a project using autoconf for configuration, you
 +can use the probing macro in `conftools/expat.m4` to determine how to
 +include Expat.  See the comments at the top of that file for more
 +information.
 +
 +A reference manual is available in the file `doc/reference.html` in this
 +distribution.
 +
 +
 +### b) Building with CMake
 +
 +The CMake build system is still *experimental* and may replace the primary
 +build system based on GNU Autotools at some point when it is ready.
 +
 +
 +#### Available Options
 +
 +For an idea of the available (non-advanced) options for building with CMake:
 +
 +```console
 +# rm -f CMakeCache.txt ; cmake -D_EXPAT_HELP=ON -LH . | grep -B1 ':.*=' | sed 's,^--$,,'
 +// Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ...
 +CMAKE_BUILD_TYPE:STRING=
 +
 +// Install path prefix, prepended onto install directories.
 +CMAKE_INSTALL_PREFIX:PATH=/usr/local
 +
 +// Path to a program.
 +DOCBOOK_TO_MAN:FILEPATH=/usr/bin/docbook2x-man
 +
 +// Build man page for xmlwf
 +EXPAT_BUILD_DOCS:BOOL=ON
 +
 +// Build the examples for expat library
 +EXPAT_BUILD_EXAMPLES:BOOL=ON
 +
 +// Build fuzzers for the expat library
 +EXPAT_BUILD_FUZZERS:BOOL=OFF
 +
 +// Build pkg-config file
 +EXPAT_BUILD_PKGCONFIG:BOOL=ON
 +
 +// Build the tests for expat library
 +EXPAT_BUILD_TESTS:BOOL=ON
 +
 +// Build the xmlwf tool for expat library
 +EXPAT_BUILD_TOOLS:BOOL=ON
 +
 +// Character type to use (char|ushort|wchar_t) [default=char]
 +EXPAT_CHAR_TYPE:STRING=char
 +
 +// Install expat files in cmake install target
 +EXPAT_ENABLE_INSTALL:BOOL=ON
 +
 +// Use /MT flag (static CRT) when compiling in MSVC
 +EXPAT_MSVC_STATIC_CRT:BOOL=OFF
 +
 +// Build fuzzers via ossfuzz for the expat library
 +EXPAT_OSSFUZZ_BUILD:BOOL=OFF
 +
 +// Build a shared expat library
 +EXPAT_SHARED_LIBS:BOOL=ON
 +
 +// Treat all compiler warnings as errors
 +EXPAT_WARNINGS_AS_ERRORS:BOOL=OFF
 +
 +// Make use of getrandom function (ON|OFF|AUTO) [default=AUTO]
 +EXPAT_WITH_GETRANDOM:STRING=AUTO
 +
 +// Utilize libbsd (for arc4random_buf)
 +EXPAT_WITH_LIBBSD:BOOL=OFF
 +
 +// Make use of syscall SYS_getrandom (ON|OFF|AUTO) [default=AUTO]
 +EXPAT_WITH_SYS_GETRANDOM:STRING=AUTO
 +```
diff --cc contrib/expat/examples/element_declarations.c
index 000000000000,7ce8544f6f04..7ce8544f6f04
mode 000000,100644..100644
--- a/contrib/expat/examples/element_declarations.c
+++ b/contrib/expat/examples/element_declarations.c
diff --cc contrib/expat/tests/acc_tests.c
index 000000000000,e1c4b7f7eb51..e1c4b7f7eb51
mode 000000,100644..100644
--- a/contrib/expat/tests/acc_tests.c
+++ b/contrib/expat/tests/acc_tests.c
diff --cc contrib/expat/tests/acc_tests.h
index 000000000000,bbb93f37ed20..bbb93f37ed20
mode 000000,100644..100644
--- a/contrib/expat/tests/acc_tests.h
+++ b/contrib/expat/tests/acc_tests.h
diff --cc contrib/expat/tests/acc_tests_cxx.cpp
index 000000000000,01644991ae51..01644991ae51
mode 000000,100644..100644
--- a/contrib/expat/tests/acc_tests_cxx.cpp
+++ b/contrib/expat/tests/acc_tests_cxx.cpp
diff --cc contrib/expat/tests/alloc_tests.c
index 000000000000,e5d46ebea821..e5d46ebea821
mode 000000,100644..100644
--- a/contrib/expat/tests/alloc_tests.c
+++ b/contrib/expat/tests/alloc_tests.c
diff --cc contrib/expat/tests/alloc_tests.h
index 000000000000,1eae130be78f..1eae130be78f
mode 000000,100644..100644
--- a/contrib/expat/tests/alloc_tests.h
+++ b/contrib/expat/tests/alloc_tests.h
diff --cc contrib/expat/tests/alloc_tests_cxx.cpp
index 000000000000,3270b1a6c984..3270b1a6c984
mode 000000,100644..100644
--- a/contrib/expat/tests/alloc_tests_cxx.cpp
+++ b/contrib/expat/tests/alloc_tests_cxx.cpp
diff --cc contrib/expat/tests/basic_tests.c
index 000000000000,7112a4401879..7112a4401879
mode 000000,100644..100644
--- a/contrib/expat/tests/basic_tests.c
+++ b/contrib/expat/tests/basic_tests.c
diff --cc contrib/expat/tests/basic_tests.h
index 000000000000,4c16562ca0fd..4c16562ca0fd
mode 000000,100644..100644
--- a/contrib/expat/tests/basic_tests.h
+++ b/contrib/expat/tests/basic_tests.h
diff --cc contrib/expat/tests/basic_tests_cxx.cpp
index 000000000000,d7e75a9061cf..d7e75a9061cf
mode 000000,100644..100644
--- a/contrib/expat/tests/basic_tests_cxx.cpp
+++ b/contrib/expat/tests/basic_tests_cxx.cpp
diff --cc contrib/expat/tests/chardata_cxx.cpp
index 000000000000,81820c72dca1..81820c72dca1
mode 000000,100644..100644
--- a/contrib/expat/tests/chardata_cxx.cpp
+++ b/contrib/expat/tests/chardata_cxx.cpp
diff --cc contrib/expat/tests/common.c
index 000000000000,26d0c5473a63..26d0c5473a63
mode 000000,100644..100644
--- a/contrib/expat/tests/common.c
+++ b/contrib/expat/tests/common.c
diff --cc contrib/expat/tests/common.h
index 000000000000,52f00cc0eeb0..52f00cc0eeb0
mode 000000,100644..100644
--- a/contrib/expat/tests/common.h
+++ b/contrib/expat/tests/common.h
diff --cc contrib/expat/tests/common_cxx.cpp
index 000000000000,698a0ccfa9d5..698a0ccfa9d5
mode 000000,100644..100644
--- a/contrib/expat/tests/common_cxx.cpp
+++ b/contrib/expat/tests/common_cxx.cpp
diff --cc contrib/expat/tests/dummy.c
index 000000000000,4ab57edd2cf2..4ab57edd2cf2
mode 000000,100644..100644
--- a/contrib/expat/tests/dummy.c
+++ b/contrib/expat/tests/dummy.c
diff --cc contrib/expat/tests/dummy.h
index 000000000000,3d7ec63ed336..3d7ec63ed336
mode 000000,100644..100644
--- a/contrib/expat/tests/dummy.h
+++ b/contrib/expat/tests/dummy.h
diff --cc contrib/expat/tests/dummy_cxx.cpp
index 000000000000,27c9f431ecd8..27c9f431ecd8
mode 000000,100644..100644
--- a/contrib/expat/tests/dummy_cxx.cpp
+++ b/contrib/expat/tests/dummy_cxx.cpp
diff --cc contrib/expat/tests/handlers.c
index 000000000000,449ada70f9a2..449ada70f9a2
mode 000000,100644..100644
--- a/contrib/expat/tests/handlers.c
+++ b/contrib/expat/tests/handlers.c
diff --cc contrib/expat/tests/handlers.h
index 000000000000,e1f0995f79e6..e1f0995f79e6
mode 000000,100644..100644
--- a/contrib/expat/tests/handlers.h
+++ b/contrib/expat/tests/handlers.h
diff --cc contrib/expat/tests/handlers_cxx.cpp
index 000000000000,86c62b159cc7..86c62b159cc7
mode 000000,100644..100644
--- a/contrib/expat/tests/handlers_cxx.cpp
+++ b/contrib/expat/tests/handlers_cxx.cpp
diff --cc contrib/expat/tests/memcheck_cxx.cpp
index 000000000000,e62ac98999c8..e62ac98999c8
mode 000000,100644..100644
--- a/contrib/expat/tests/memcheck_cxx.cpp
+++ b/contrib/expat/tests/memcheck_cxx.cpp
diff --cc contrib/expat/tests/minicheck_cxx.cpp
index 000000000000,58881c60ba07..58881c60ba07
mode 000000,100644..100644
--- a/contrib/expat/tests/minicheck_cxx.cpp
+++ b/contrib/expat/tests/minicheck_cxx.cpp
diff --cc contrib/expat/tests/misc_tests.c
index 000000000000,b5212f58a5bb..b5212f58a5bb
mode 000000,100644..100644
--- a/contrib/expat/tests/misc_tests.c
+++ b/contrib/expat/tests/misc_tests.c
diff --cc contrib/expat/tests/misc_tests.h
index 000000000000,3d9c4b8a4065..3d9c4b8a4065
mode 000000,100644..100644
--- a/contrib/expat/tests/misc_tests.h
+++ b/contrib/expat/tests/misc_tests.h
diff --cc contrib/expat/tests/misc_tests_cxx.cpp
index 000000000000,0b84c1b1f4d6..0b84c1b1f4d6
mode 000000,100644..100644
--- a/contrib/expat/tests/misc_tests_cxx.cpp
+++ b/contrib/expat/tests/misc_tests_cxx.cpp
diff --cc contrib/expat/tests/ns_tests.c
index 000000000000,411e1d3c974a..411e1d3c974a
mode 000000,100644..100644
--- a/contrib/expat/tests/ns_tests.c
+++ b/contrib/expat/tests/ns_tests.c
diff --cc contrib/expat/tests/ns_tests.h
index 000000000000,acb0db786a40..acb0db786a40
mode 000000,100644..100644
--- a/contrib/expat/tests/ns_tests.h
+++ b/contrib/expat/tests/ns_tests.h
diff --cc contrib/expat/tests/ns_tests_cxx.cpp
index 000000000000,b2fe187bb8b4..b2fe187bb8b4
mode 000000,100644..100644
--- a/contrib/expat/tests/ns_tests_cxx.cpp
+++ b/contrib/expat/tests/ns_tests_cxx.cpp
diff --cc contrib/expat/tests/nsalloc_tests.c
index 000000000000,ec88586af1d4..ec88586af1d4
mode 000000,100644..100644
--- a/contrib/expat/tests/nsalloc_tests.c
+++ b/contrib/expat/tests/nsalloc_tests.c
diff --cc contrib/expat/tests/nsalloc_tests.h
index 000000000000,026a2a21a950..026a2a21a950
mode 000000,100644..100644
--- a/contrib/expat/tests/nsalloc_tests.h
+++ b/contrib/expat/tests/nsalloc_tests.h
diff --cc contrib/expat/tests/nsalloc_tests_cxx.cpp
index 000000000000,9ba75d1c5368..9ba75d1c5368
mode 000000,100644..100644
--- a/contrib/expat/tests/nsalloc_tests_cxx.cpp
+++ b/contrib/expat/tests/nsalloc_tests_cxx.cpp
diff --cc contrib/expat/tests/structdata_cxx.cpp
index 000000000000,43448f634057..43448f634057
mode 000000,100644..100644
--- a/contrib/expat/tests/structdata_cxx.cpp
+++ b/contrib/expat/tests/structdata_cxx.cpp
diff --cc lib/libexpat/expat_config.h
index 369cebcbe451,000000000000..0d581a431a53
mode 100644,000000..100644
--- a/lib/libexpat/expat_config.h
+++ b/lib/libexpat/expat_config.h
@@@ -1,146 -1,0 +1,152 @@@
 +/* expat_config.h.  Generated from expat_config.h.in by configure.  */
 +/* expat_config.h.in.  Generated from configure.ac by autoheader.  */
 +
 +#ifndef EXPAT_CONFIG_H
 +#define EXPAT_CONFIG_H 1
 +
 +#include <machine/endian.h>
 +
 +/* Define if building universal (internal helper macro) */
 +/* #undef AC_APPLE_UNIVERSAL_BUILD */
 +
 +/* 1234 = LILENDIAN, 4321 = BIGENDIAN */
 +#if BYTE_ORDER == LITTLE_ENDIAN
 +#define BYTEORDER 1234
 +#else
 +#define BYTEORDER 4321
 +#endif
 +
 +/* Define to 1 if you have the `arc4random' function. */
 +#define HAVE_ARC4RANDOM 1
 +
 +/* Define to 1 if you have the `arc4random_buf' function. */
 +#define HAVE_ARC4RANDOM_BUF 1
 +
++/* define if the compiler supports basic C++11 syntax */
++#define HAVE_CXX11 1
++
 +/* Define to 1 if you have the <dlfcn.h> header file. */
 +#define HAVE_DLFCN_H 1
 +
 +/* Define to 1 if you have the <fcntl.h> header file. */
 +#define HAVE_FCNTL_H 1
 +
 +/* Define to 1 if you have the `getpagesize' function. */
 +#define HAVE_GETPAGESIZE 1
 +
 +/* Define to 1 if you have the `getrandom' function. */
 +#define HAVE_GETRANDOM 1
 +
 +/* Define to 1 if you have the <inttypes.h> header file. */
 +#define HAVE_INTTYPES_H 1
 +
 +/* Define to 1 if you have the `bsd' library (-lbsd). */
 +/* #undef HAVE_LIBBSD */
 +
 +/* Define to 1 if you have a working `mmap' system call. */
 +#define HAVE_MMAP 1
 +
 +/* Define to 1 if you have the <stdint.h> header file. */
 +#define HAVE_STDINT_H 1
 +
 +/* Define to 1 if you have the <stdio.h> header file. */
 +#define HAVE_STDIO_H 1
 +
 +/* Define to 1 if you have the <stdlib.h> header file. */
 +#define HAVE_STDLIB_H 1
 +
 +/* Define to 1 if you have the <strings.h> header file. */
 +#define HAVE_STRINGS_H 1
 +
 +/* Define to 1 if you have the <string.h> header file. */
 +#define HAVE_STRING_H 1
 +
 +/* Define to 1 if you have `syscall' and `SYS_getrandom'. */
 +#define HAVE_SYSCALL_GETRANDOM 1
 +
 +/* Define to 1 if you have the <sys/param.h> header file. */
 +#define HAVE_SYS_PARAM_H 1
 +
 +/* Define to 1 if you have the <sys/stat.h> header file. */
 +#define HAVE_SYS_STAT_H 1
 +
 +/* Define to 1 if you have the <sys/types.h> header file. */
 +#define HAVE_SYS_TYPES_H 1
 +
 +/* Define to 1 if you have the <unistd.h> header file. */
 +#define HAVE_UNISTD_H 1
 +
 +/* Define to the sub-directory where libtool stores uninstalled libraries. */
 +#define LT_OBJDIR ".libs/"
 +
 +/* Name of package */
 +#define PACKAGE "expat"
 +
 +/* Define to the address where bug reports for this package should be sent. */
- #define PACKAGE_BUGREPORT "expat-bugs@libexpat.org"
++#define PACKAGE_BUGREPORT "https://github.com/libexpat/libexpat/issues"
 +
 +/* Define to the full name of this package. */
 +#define PACKAGE_NAME "expat"
 +
 +/* Define to the full name and version of this package. */
- #define PACKAGE_STRING "expat 2.5.0"
++#define PACKAGE_STRING "expat 2.6.0"
 +
 +/* Define to the one symbol short name of this package. */
 +#define PACKAGE_TARNAME "expat"
 +
 +/* Define to the home page for this package. */
 +#define PACKAGE_URL ""
 +
 +/* Define to the version of this package. */
- #define PACKAGE_VERSION "2.5.0"
++#define PACKAGE_VERSION "2.6.0"
 +
 +/* Define to 1 if all of the C90 standard headers exist (not just the ones
 +   required in a freestanding environment). This macro is provided for
 +   backward compatibility; new code need not use it. */
 +#define STDC_HEADERS 1
 +
 +/* Version number of package */
- #define VERSION "2.5.0"
++#define VERSION "2.6.0"
 +
 +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
 +   significant byte first (like Motorola and SPARC, unlike Intel). */
 +#if defined AC_APPLE_UNIVERSAL_BUILD
 +# if defined __BIG_ENDIAN__
 +#  define WORDS_BIGENDIAN 1
 +# endif
 +#else
 +# ifndef WORDS_BIGENDIAN
 +/* #  undef WORDS_BIGENDIAN */
 +# endif
 +#endif
 +
 +/* Define to allow retrieving the byte offsets for attribute names and values.
 +   */
 +/* #undef XML_ATTR_INFO */
 +
 +/* Define to specify how much context to retain around the current parse
-    point. */
++   point, 0 to disable. */
 +#define XML_CONTEXT_BYTES 1024
 +
 +/* Define to include code reading entropy from `/dev/urandom'. */
 +#define XML_DEV_URANDOM 1
 +
 +/* Define to make parameter entity parsing functionality available. */
 +#define XML_DTD 1
 +
++/* Define as 1/0 to enable/disable support for general entities. */
++#define XML_GE 1
++
 +/* Define to make XML Namespaces functionality available. */
 +#define XML_NS 1
 +
 +/* Define to empty if `const' does not conform to ANSI C. */
 +/* #undef const */
 +
 +/* Define to `long int' if <sys/types.h> does not define. */
 +/* #undef off_t */
 +
 +/* Define to `unsigned int' if <sys/types.h> does not define. */
 +/* #undef size_t */
 +
 +#endif // ndef EXPAT_CONFIG_H
diff --cc lib/libexpat/libbsdxml.3
index e4e55a64dd47,000000000000..c6c2518ea41a
mode 100644,000000..100644
--- a/lib/libexpat/libbsdxml.3
+++ b/lib/libexpat/libbsdxml.3
@@@ -1,67 -1,0 +1,67 @@@
 +.\"-
 +.\" Copyright (c) 2002 Poul-Henning Kamp
 +.\" All rights reserved.
 +.\"
 +.\" Redistribution and use in source and binary forms, with or without
 +.\" modification, are permitted provided that the following conditions
 +.\" are met:
 +.\" 1. Redistributions of source code must retain the above copyright
 +.\"    notice, this list of conditions and the following disclaimer.
 +.\" 2. Redistributions in binary form must reproduce the above copyright
 +.\"    notice, this list of conditions and the following disclaimer in the
 +.\"    documentation and/or other materials provided with the distribution.
 +.\"
 +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 +.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 +.\" SUCH DAMAGE.
 +.\"/
- .Dd November 18, 2022
++.Dd February 17, 2024
 +.Dt LIBBSDXML 3
 +.Os
 +.Sh NAME
 +.Nm libbsdxml
 +.Nd eXpat XML parser library
 +.Sh SYNOPSIS
 +.In bsdxml.h
 +.Sh DESCRIPTION
 +The
 +.Nm
- library is a verbatim copy of the eXpat XML library version 2.5.0.
++library is a verbatim copy of the eXpat XML library version 2.6.0.
 +.Pp
 +The
 +.Nm
 +library is intended to be used within the
 +.Fx
 +base system only.
 +Use of the
 +.Nm
 +library for other purposes is not supported and discouraged.
 +.Pp
 +To avoid version and autoconfiguration issues, the library has been
 +renamed to
 +.Nm
 +rather than retain the original eXpat library and include file names
 +to prevent confusion and autoconfiguration issues for 3rd party
 +software.
 +.Sh SEE ALSO
 +For full documentation, please see the eXpat webpage at
 +.Pa http://www.libexpat.org/ .
 +.Sh AUTHORS
 +.An -nosplit
 +The original eXpat was written by
 +.An James Clark Aq Mt jjc@jclark.com .
 +.Pp
 +Subsequently eXpat maintenance and development been taken up by a group
 +of people under the leadership of
 +.An Fred Drake Aq Mt fdrake@acm.com ,
 +.An Paul Prescod ,
 +and
 +.An Clark Cooper .