git: cc68614da823 - main - MFV f83ac37f1e66: libbsdxml (expat) 2.4.3.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 18 Jan 2022 00:35:01 UTC
The branch main has been updated by delphij:
URL: https://cgit.FreeBSD.org/src/commit/?id=cc68614da8232d8baaca0ae0d0dd8f890f06623e
commit cc68614da8232d8baaca0ae0d0dd8f890f06623e
Merge: 50722514280a f83ac37f1e66
Author: Xin LI <delphij@FreeBSD.org>
AuthorDate: 2022-01-18 00:29:36 +0000
Commit: Xin LI <delphij@FreeBSD.org>
CommitDate: 2022-01-18 00:34:41 +0000
MFV f83ac37f1e66: libbsdxml (expat) 2.4.3.
contrib/expat/COPYING | 2 +-
contrib/expat/Changes | 282 +++++-
contrib/expat/Makefile.am | 25 +-
contrib/expat/Makefile.in | 161 ++-
contrib/expat/README.md | 97 +-
contrib/expat/buildconf.sh | 55 +
contrib/expat/configure.ac | 166 ++-
contrib/expat/doc/Makefile.am | 6 +-
contrib/expat/doc/Makefile.in | 33 +-
contrib/expat/doc/expat.png | Bin 1029 -> 0 bytes
contrib/expat/doc/ok.min.css | 2 +
contrib/expat/doc/reference.html | 390 +++++--
contrib/expat/doc/style.css | 134 +--
contrib/expat/doc/xmlwf.1 | 134 ++-
contrib/expat/doc/xmlwf.xml | 210 ++--
contrib/expat/examples/Makefile.am | 5 +-
contrib/expat/examples/Makefile.in | 33 +-
contrib/expat/examples/elements.c | 7 +-
contrib/expat/examples/outline.c | 8 +-
contrib/expat/expat_config.h.in | 10 +-
contrib/expat/fix-xmltest-log.sh | 2 +-
contrib/expat/fuzz/xml_parse_fuzzer.c | 64 ++
contrib/expat/fuzz/xml_parsebuffer_fuzzer.c | 71 ++
contrib/expat/lib/Makefile.am | 16 +-
contrib/expat/lib/Makefile.in | 94 +-
contrib/expat/lib/ascii.h | 7 +-
contrib/expat/lib/asciitab.h | 4 +-
contrib/expat/lib/expat.h | 44 +-
contrib/expat/lib/expat_external.h | 9 +-
contrib/expat/lib/iasciitab.h | 4 +-
contrib/expat/lib/internal.h | 58 +-
contrib/expat/lib/latin1tab.h | 4 +-
contrib/expat/lib/loadlibrary.c | 143 ---
contrib/expat/lib/nametab.h | 4 +-
contrib/expat/lib/siphash.h | 13 +-
contrib/expat/lib/utf8tab.h | 4 +-
contrib/expat/lib/xmlparse.c | 1463 +++++++++++++++++++++++++--
contrib/expat/lib/xmlrole.c | 20 +-
contrib/expat/lib/xmlrole.h | 5 +-
contrib/expat/lib/xmltok.c | 47 +-
contrib/expat/lib/xmltok.h | 6 +-
contrib/expat/lib/xmltok_impl.c | 21 +-
contrib/expat/lib/xmltok_impl.h | 3 +-
contrib/expat/lib/xmltok_ns.c | 8 +-
contrib/expat/run.sh.in | 41 +-
contrib/expat/test-driver-wrapper.sh | 3 +-
contrib/expat/tests/Makefile.am | 13 +-
contrib/expat/tests/Makefile.in | 57 +-
contrib/expat/tests/benchmark/Makefile.am | 5 +-
contrib/expat/tests/benchmark/Makefile.in | 33 +-
contrib/expat/tests/benchmark/benchmark.c | 6 +-
contrib/expat/tests/benchmark/benchmark.sln | 25 -
contrib/expat/tests/chardata.c | 12 +-
contrib/expat/tests/chardata.h | 5 +-
contrib/expat/tests/memcheck.c | 4 +-
contrib/expat/tests/memcheck.h | 4 +-
contrib/expat/tests/minicheck.c | 36 +-
contrib/expat/tests/minicheck.h | 5 +-
contrib/expat/tests/runtests.c | 629 ++++++++++--
contrib/expat/tests/runtests.sln | 24 -
contrib/expat/tests/runtestspp.cpp | 4 +-
contrib/expat/tests/structdata.c | 8 +-
contrib/expat/tests/structdata.h | 3 +-
contrib/expat/tests/udiffer.py | 3 +-
contrib/expat/tests/xmltest.sh | 43 +-
contrib/expat/xmlwf/Makefile.am | 7 +-
contrib/expat/xmlwf/Makefile.in | 36 +-
contrib/expat/xmlwf/codepage.c | 31 +-
contrib/expat/xmlwf/codepage.h | 4 +-
contrib/expat/xmlwf/ct.c | 3 +-
contrib/expat/xmlwf/filemap.h | 4 +-
contrib/expat/xmlwf/readfilemap.c | 7 +-
contrib/expat/xmlwf/unixfilemap.c | 6 +-
contrib/expat/xmlwf/win32filemap.c | 4 +-
contrib/expat/xmlwf/xmlfile.c | 17 +-
contrib/expat/xmlwf/xmlfile.h | 5 +-
contrib/expat/xmlwf/xmlmime.c | 4 +-
contrib/expat/xmlwf/xmlmime.h | 3 +-
contrib/expat/xmlwf/xmltchar.h | 7 +-
contrib/expat/xmlwf/xmlurl.h | 45 -
contrib/expat/xmlwf/xmlwf.c | 186 +++-
contrib/expat/xmlwf/xmlwf_helpgen.py | 30 +-
contrib/expat/xmlwf/xmlwf_helpgen.sh | 5 +-
contrib/expat/xmlwf/xmlwin32url.cxx | 427 --------
lib/libexpat/expat_config.h | 18 +-
85 files changed, 4183 insertions(+), 1503 deletions(-)
diff --cc contrib/expat/README.md
index 1cc52b014489,000000000000..6fdd6148714b
mode 100644,000000..100644
--- a/contrib/expat/README.md
+++ b/contrib/expat/README.md
@@@ -1,188 -1,0 +1,269 @@@
- [](https://travis-ci.org/libexpat/libexpat)
++[](https://github.com/libexpat/libexpat/actions/workflows/linux.yml)
+[](https://ci.appveyor.com/project/libexpat/libexpat)
+[](https://repology.org/metapackage/expat/versions)
++[](https://sourceforge.net/projects/expat/files/)
++[](https://github.com/libexpat/libexpat/releases)
+
+
- # Expat, Release 2.2.9
++# Expat, Release 2.4.3
+
+This is Expat, a C library for parsing XML, started by
- [James Clark](https://en.wikipedia.org/wiki/James_Clark_(programmer)) in 1997.
++[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 >=8.0/2005
++- Microsoft Visual Studio >=15.0/2017 (rolling `${today} minus 5 years`)
+
- Windows users should use the
- [`expat_win32` package](https://sourceforge.net/projects/expat/files/expat_win32/),
- which includes both precompiled libraries and executables, and source code for
++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 — e.g. as part of
+a Linux distribution — 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.
+
+
- The CMake build system is still *experimental* and will replace the primary
++### 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/buildconf.sh
index 000000000000,5edbc565bc27..5edbc565bc27
mode 000000,100755..100755
--- a/contrib/expat/buildconf.sh
+++ b/contrib/expat/buildconf.sh
diff --cc contrib/expat/doc/ok.min.css
index 000000000000,8b5f86e7042c..8b5f86e7042c
mode 000000,100644..100644
--- a/contrib/expat/doc/ok.min.css
+++ b/contrib/expat/doc/ok.min.css
diff --cc contrib/expat/fuzz/xml_parse_fuzzer.c
index 000000000000,48b50212fa62..48b50212fa62
mode 000000,100644..100644
--- a/contrib/expat/fuzz/xml_parse_fuzzer.c
+++ b/contrib/expat/fuzz/xml_parse_fuzzer.c
diff --cc contrib/expat/fuzz/xml_parsebuffer_fuzzer.c
index 000000000000,0c7a8f2bf4fc..0c7a8f2bf4fc
mode 000000,100644..100644
--- a/contrib/expat/fuzz/xml_parsebuffer_fuzzer.c
+++ b/contrib/expat/fuzz/xml_parsebuffer_fuzzer.c
diff --cc lib/libexpat/expat_config.h
index d4cb92cafdb5,000000000000..e2ffcb15c7ef
mode 100644,000000..100644
--- a/lib/libexpat/expat_config.h
+++ b/lib/libexpat/expat_config.h
@@@ -1,141 -1,0 +1,141 @@@
- /* $FreeBSD$ */
-
+/* expat_config.h. Generated from expat_config.h.in by configure. */
+/* expat_config.h.in. Generated from configure.ac by autoheader. */
+
+#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 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 the <memory.h> header file. */
- #define HAVE_MEMORY_H 1
-
+/* 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 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.2.9"
++#define PACKAGE_STRING "expat 2.4.3"
+
+/* 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.2.9"
++#define PACKAGE_VERSION "2.4.3"
+
- /* Define to 1 if you have the ANSI C header files. */
++/* 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.2.9"
++#define VERSION "2.4.3"
+
+/* 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. */
+#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 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 */