git: e52f11f4bbc8 - stable/14 - libyaml: import libyaml vendor version 0.2.5
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 08 Jul 2025 14:32:09 UTC
The branch stable/14 has been updated by bapt:
URL: https://cgit.FreeBSD.org/src/commit/?id=e52f11f4bbc89df8114715a210adf2411ca4936d
commit e52f11f4bbc89df8114715a210adf2411ca4936d
Author: Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2025-06-26 06:57:37 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-07-08 14:06:59 +0000
libyaml: import libyaml vendor version 0.2.5
The yaml parser used in nuageinit is too incomplete, import libyaml
in order to be able to use as a complete parser for nuageinit.
(cherry picked from commit 0f5c86ddb0257f4b7620f1d8e898289be30b19bf)
---
contrib/libyaml/.appveyor.yml | 29 +
contrib/libyaml/.github/workflows/main.yml | 59 +
contrib/libyaml/.gitignore | 46 +
contrib/libyaml/.indent.pro | 1 +
contrib/libyaml/.makefile | 63 +
contrib/libyaml/.travis.yml | 28 +
contrib/libyaml/CMakeLists.txt | 160 +
contrib/libyaml/Changes | 372 ++
contrib/libyaml/License | 20 +
contrib/libyaml/Makefile.am | 54 +
contrib/libyaml/ReadMe.md | 46 +
contrib/libyaml/announcement.msg | 89 +
contrib/libyaml/bootstrap | 3 +
contrib/libyaml/configure.ac | 73 +
contrib/libyaml/doc/doxygen.cfg | 222 ++
contrib/libyaml/docker/README.mkd | 17 +
contrib/libyaml/docker/alpine-3.7 | 26 +
contrib/libyaml/docker/fedora-25 | 26 +
contrib/libyaml/docker/ubuntu-14.04 | 29 +
contrib/libyaml/docker/ubuntu-16.04 | 24 +
contrib/libyaml/examples/anchors.yaml | 10 +
contrib/libyaml/examples/array.yaml | 2 +
contrib/libyaml/examples/global-tag.yaml | 14 +
contrib/libyaml/examples/json.yaml | 1 +
contrib/libyaml/examples/mapping.yaml | 2 +
contrib/libyaml/examples/numbers.yaml | 1 +
contrib/libyaml/examples/strings.yaml | 7 +
contrib/libyaml/examples/tags.yaml | 7 +
contrib/libyaml/examples/yaml-version.yaml | 3 +
contrib/libyaml/include/Makefile.am | 17 +
contrib/libyaml/include/yaml.h | 1985 +++++++++++
...terfuzz-testcase-minimized-5607885063061504.yml | 1 +
contrib/libyaml/src/Makefile.am | 4 +
contrib/libyaml/src/api.c | 1393 ++++++++
contrib/libyaml/src/dumper.c | 394 +++
contrib/libyaml/src/emitter.c | 2358 +++++++++++++
contrib/libyaml/src/loader.c | 544 +++
contrib/libyaml/src/parser.c | 1375 ++++++++
contrib/libyaml/src/reader.c | 469 +++
contrib/libyaml/src/scanner.c | 3598 ++++++++++++++++++++
contrib/libyaml/src/writer.c | 141 +
contrib/libyaml/src/yaml_private.h | 684 ++++
contrib/libyaml/tests/CMakeLists.txt | 27 +
contrib/libyaml/tests/Makefile.am | 9 +
contrib/libyaml/tests/ReadMe.md | 63 +
contrib/libyaml/tests/example-deconstructor-alt.c | 800 +++++
contrib/libyaml/tests/example-deconstructor.c | 1127 ++++++
contrib/libyaml/tests/example-reformatter-alt.c | 217 ++
contrib/libyaml/tests/example-reformatter.c | 202 ++
contrib/libyaml/tests/run-all-tests.sh | 29 +
contrib/libyaml/tests/run-dumper.c | 314 ++
contrib/libyaml/tests/run-emitter-test-suite.c | 290 ++
contrib/libyaml/tests/run-emitter.c | 327 ++
contrib/libyaml/tests/run-loader.c | 63 +
contrib/libyaml/tests/run-parser-test-suite.c | 189 +
contrib/libyaml/tests/run-parser.c | 63 +
contrib/libyaml/tests/run-scanner.c | 63 +
contrib/libyaml/tests/test-reader.c | 354 ++
contrib/libyaml/tests/test-version.c | 29 +
contrib/libyaml/yaml-0.1.pc.in | 10 +
contrib/libyaml/yamlConfig.cmake.in | 16 +
lib/Makefile | 1 +
lib/libyaml/Makefile | 29 +
share/mk/src.libnames.mk | 1 +
64 files changed, 18620 insertions(+)
diff --git a/contrib/libyaml/.appveyor.yml b/contrib/libyaml/.appveyor.yml
new file mode 100644
index 000000000000..36d706aecdf5
--- /dev/null
+++ b/contrib/libyaml/.appveyor.yml
@@ -0,0 +1,29 @@
+version: 0.2.5.{build}
+
+image:
+- Visual Studio 2015
+- Visual Studio 2013
+
+build_script:
+
+#
+# CMake based in-source build and tests using Visual Studio
+#
+
+# Use 32-bit default generator ("Visual Studio 12 2013" or "Visual Studio 14 2015")
+- cmake .
+- cmake --build . --config Release --clean-first
+- ctest -C Release
+
+#
+# Autoconf based in-source build and tests under Cygwin using gcc
+#
+
+# 32-bit cygwin build
+- C:\cygwin\bin\sh -c "export PATH=/usr/bin:/usr/local/bin:$PATH && ./bootstrap && ./configure && make && make test && make distclean"
+# 64-bit cygwin build
+- C:\cygwin64\bin\sh -c "export PATH=/usr/bin:/usr/local/bin:$PATH && ./bootstrap && ./configure && make && make test && make distclean"
+# 32-bit mingw-w64 build
+- C:\cygwin\bin\sh -c "export PATH=/usr/bin:/usr/local/bin:$PATH && ./bootstrap && ./configure --host=i686-w64-mingw32 --target=i686-w64-mingw32 && make && make test && make distclean"
+# 64-bit mingw-w64 build
+- C:\cygwin64\bin\sh -c "export PATH=/usr/bin:/usr/local/bin:$PATH && ./bootstrap && ./configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 && make && make test && make distclean"
diff --git a/contrib/libyaml/.github/workflows/main.yml b/contrib/libyaml/.github/workflows/main.yml
new file mode 100644
index 000000000000..c2bdef471011
--- /dev/null
+++ b/contrib/libyaml/.github/workflows/main.yml
@@ -0,0 +1,59 @@
+name: linux/mac
+
+on:
+ push:
+ branches: [ '*' ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+
+ build:
+
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ compiler:
+ - gcc
+ - clang
+ os:
+ - ubuntu-latest
+ - macOS-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - run: env | sort
+ - name: Install software
+ run: |
+ if [[ '${{ matrix.os }}' == macOS-latest ]]; then
+ brew install automake bash coreutils make
+ echo ::add-path::/usr/local/opt/coreutils/libexec/gnubin
+ echo ::add-path::/usr/local/opt/make/libexec/gnubin
+ fi
+ - name: Fetch branches
+ run: |
+ git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
+ git fetch --unshallow
+
+ - run: ./bootstrap
+ - run: ./configure
+ - run: make
+ - run: make test-all
+
+ - run: |
+ git clean -d -x -f
+ rm -fr tests/run-test-suite
+ git worktree prune
+
+ - name: Compiler version
+ run: ${{ matrix.compiler }} --version
+ env:
+ CC: ${{ matrix.compiler }}
+ - run: cmake .
+ env:
+ CC: ${{ matrix.compiler }}
+ - run: make
+ env:
+ CC: ${{ matrix.compiler }}
+ - run: make test
diff --git a/contrib/libyaml/.gitignore b/contrib/libyaml/.gitignore
new file mode 100644
index 000000000000..90840c8ac2de
--- /dev/null
+++ b/contrib/libyaml/.gitignore
@@ -0,0 +1,46 @@
+*.BAK
+*.a
+*.cmake
+*.dll
+*.exe
+*.la
+*.lo
+*.log
+*.o
+*.pc
+*.so
+*.trs
+*~
+.deps/
+.libs/
+/Testing/
+/libtool
+CMakeCache.txt
+CMakeFiles/
+GNUmakefile
+Makefile
+Makefile.in
+/aclocal.m4
+/autom4te.cache
+/config
+config.h*
+/config.status
+/configure
+stamp-h1
+!config/config.h.in
+/packaging/
+/tests/run-dumper
+/tests/run-emitter
+/tests/run-emitter-test-suite
+/tests/run-loader
+/tests/run-parser
+/tests/run-parser-test-suite
+/tests/run-scanner
+/tests/example-deconstructor
+/tests/example-deconstructor-alt
+/tests/example-reformatter
+/tests/example-reformatter-alt
+/tests/run-test-suite
+/tests/test-reader
+/tests/test-version
+/dist/
diff --git a/contrib/libyaml/.indent.pro b/contrib/libyaml/.indent.pro
new file mode 100644
index 000000000000..d647720f74d6
--- /dev/null
+++ b/contrib/libyaml/.indent.pro
@@ -0,0 +1 @@
+-kr -nut -nce -l250
diff --git a/contrib/libyaml/.makefile b/contrib/libyaml/.makefile
new file mode 100644
index 000000000000..9d526a4d3983
--- /dev/null
+++ b/contrib/libyaml/.makefile
@@ -0,0 +1,63 @@
+# This file is used for common development targets that can be done with
+# needing the cumbersome bootstrapping process.
+#
+# You can use it like this:
+#
+# make -f .makefile indent
+#
+# If you copy or link this file to `GNUmakefile` then you can just do:
+#
+# make indent
+#
+# When copied to `GNUmakefile`, this file is can also be used for bootstrapping
+# Makefile targets. Since GNUmakefile is loaded before Makefile, we do the
+# bootstrapping tasks need to get a Makefile first, then we use the Makefile to
+# make our target.
+
+# Remind user when they are using GNUmakefile:
+ifeq ($(lastword $(MAKEFILE_LIST)),GNUmakefile)
+ $(info *** NOTE: GNUmakefile in use. ***)
+endif
+
+MAKE_TARGETS := \
+ all \
+ all-am \
+ all-recursive \
+ install \
+ test \
+ test-all \
+ test-suite \
+
+# SOURCE_FILES := $(shell find . | grep '\.c$$')
+SOURCE_FILES := $(shell find tests/run-test-suite | grep '\.c$$')
+ifneq ($(shell which gindent),)
+INDENT := gindent
+else
+INDENT := indent
+endif
+
+#
+# Proxy make targets:
+#
+default: all
+
+# Proxy these targets to the real Makefile, after bootstrapping is necessary.
+$(MAKE_TARGETS): Makefile
+ @make -f $< $@
+
+Makefile: Makefile.in
+ ./configure
+
+Makefile.in:
+ ./bootstrap
+
+#
+# Development make targets:
+#
+indent:
+ $(INDENT) $(SOURCE_FILES)
+
+distclean purge:
+ git clean -dxf -e GNUmakefile
+ rm -fr tests/run-test-suite
+ git worktree prune
diff --git a/contrib/libyaml/.travis.yml b/contrib/libyaml/.travis.yml
new file mode 100644
index 000000000000..dca3bc73c4c5
--- /dev/null
+++ b/contrib/libyaml/.travis.yml
@@ -0,0 +1,28 @@
+language: c
+
+matrix:
+ include:
+ - os: linux
+ compiler: gcc
+ sudo: required
+ - os: linux
+ compiler: clang
+ sudo: required
+ - os: osx
+ compiler: gcc
+ - os: osx
+ compiler: clang
+
+before_install:
+
+# Travis branch-specific clone problem workaround:
+- git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
+- git fetch
+- env | sort
+
+- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
+ pip install --user scikit-ci-addons==0.15.0;
+ ci_addons travis/install_cmake 3.2.0;
+ fi
+
+script: tests/run-all-tests.sh
diff --git a/contrib/libyaml/CMakeLists.txt b/contrib/libyaml/CMakeLists.txt
new file mode 100644
index 000000000000..4f811481779a
--- /dev/null
+++ b/contrib/libyaml/CMakeLists.txt
@@ -0,0 +1,160 @@
+
+cmake_minimum_required(VERSION 3.0)
+project (yaml C)
+
+set (YAML_VERSION_MAJOR 0)
+set (YAML_VERSION_MINOR 2)
+set (YAML_VERSION_PATCH 5)
+set (YAML_VERSION_STRING "${YAML_VERSION_MAJOR}.${YAML_VERSION_MINOR}.${YAML_VERSION_PATCH}")
+
+option(BUILD_SHARED_LIBS "Build libyaml as a shared library" OFF)
+set(YAML_STATIC_LIB_NAME "yaml" CACHE STRING "Base name of static library output")
+
+#
+# Output directories for a build tree
+#
+if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+endif()
+
+#
+# Install relative directories
+#
+if(NOT DEFINED INSTALL_LIB_DIR)
+ set(INSTALL_LIB_DIR lib)
+endif()
+if(NOT DEFINED INSTALL_BIN_DIR)
+ set(INSTALL_BIN_DIR bin)
+endif()
+if(NOT DEFINED INSTALL_INCLUDE_DIR)
+ set(INSTALL_INCLUDE_DIR include)
+endif()
+if(NOT DEFINED INSTALL_CMAKE_DIR)
+ set(INSTALL_CMAKE_DIR cmake)
+endif()
+
+#
+# Build library
+#
+set(SRCS
+ src/api.c
+ src/dumper.c
+ src/emitter.c
+ src/loader.c
+ src/parser.c
+ src/reader.c
+ src/scanner.c
+ src/writer.c
+ )
+
+set(config_h ${CMAKE_CURRENT_BINARY_DIR}/include/config.h)
+configure_file(
+ cmake/config.h.in
+ ${config_h}
+ )
+
+add_library(yaml ${SRCS})
+
+if(NOT BUILD_SHARED_LIBS)
+ set_target_properties(yaml
+ PROPERTIES OUTPUT_NAME ${YAML_STATIC_LIB_NAME}
+ )
+endif()
+
+set_target_properties(yaml
+ PROPERTIES DEFINE_SYMBOL YAML_DECLARE_EXPORT
+ )
+
+target_compile_definitions(yaml
+ PRIVATE HAVE_CONFIG_H
+ PUBLIC
+ $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:YAML_DECLARE_STATIC>
+ $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
+ )
+
+target_include_directories(yaml PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
+ $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>
+ )
+
+#
+# Install rules
+#
+install(
+ FILES
+ include/yaml.h
+ DESTINATION include COMPONENT Development
+ )
+
+install(
+ TARGETS yaml
+ EXPORT yamlTargets
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT Runtime
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT Development
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT Development
+ )
+
+#
+# Add tests
+#
+include(CTest) # This module defines BUILD_TESTING option
+if(BUILD_TESTING)
+ add_subdirectory(tests)
+endif()
+
+#
+# Generate 'yamlConfig.cmake', 'yamlConfigVersion.cmake' and 'yamlTargets.cmake'
+#
+include(CMakePackageConfigHelpers)
+
+# Configure 'yamlConfig.cmake' for a build tree
+set(CONFIG_DIR_CONFIG ${PROJECT_BINARY_DIR})
+set(config_file ${PROJECT_BINARY_DIR}/yamlConfig.cmake)
+configure_package_config_file(
+ yamlConfig.cmake.in
+ ${config_file}
+ INSTALL_DESTINATION ${PROJECT_BINARY_DIR}
+ PATH_VARS CONFIG_DIR_CONFIG
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+ )
+
+# Configure 'yamlTargets.cmake' for a build tree
+export(TARGETS yaml
+ FILE ${PROJECT_BINARY_DIR}/yamlTargets.cmake
+ )
+
+# Configure and install 'yamlConfig.cmake' for an install tree
+set(CONFIG_DIR_CONFIG ${INSTALL_CMAKE_DIR})
+set(install_config_file ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yamlConfig.cmake )
+configure_package_config_file(
+ yamlConfig.cmake.in
+ ${install_config_file}
+ INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}
+ PATH_VARS CONFIG_DIR_CONFIG
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+ )
+install(
+ FILES ${install_config_file}
+ DESTINATION ${INSTALL_CMAKE_DIR} COMPONENT Development
+ )
+
+# Configure and install 'yamlTargets.cmake' for an install tree
+install(EXPORT yamlTargets
+ FILE yamlTargets.cmake
+ DESTINATION ${INSTALL_CMAKE_DIR}
+ COMPONENT Development
+ )
+
+# Configure 'yamlConfigVersion.cmake' for a build tree
+set(config_version_file ${PROJECT_BINARY_DIR}/yamlConfigVersion.cmake)
+write_basic_package_version_file(
+ ${config_version_file}
+ VERSION ${YAML_VERSION_STRING}
+ COMPATIBILITY AnyNewerVersion
+)
+# ... and install for an install tree
+install(
+ FILES ${config_version_file}
+ DESTINATION ${INSTALL_CMAKE_DIR} COMPONENT Development
+ )
diff --git a/contrib/libyaml/Changes b/contrib/libyaml/Changes
new file mode 100644
index 000000000000..e4b96edcbef7
--- /dev/null
+++ b/contrib/libyaml/Changes
@@ -0,0 +1,372 @@
+0.2.5 2020-06-01
+
+https://github.com/yaml/libyaml/pull/105
+Allow question marks in plain scalars in flow collections
+
+https://github.com/yaml/libyaml/pull/186
+Emitter: Don't output trailing space for empty scalar nodes
+
+https://github.com/yaml/libyaml/pull/185
+Emitter: Output space after an alias mapping key
+
+https://github.com/yaml/libyaml/pull/187
+Add -h and --flow (on|off|keep) to run-*-test-suite
+
+https://github.com/yaml/libyaml/pull/182
+Remove unnecessary include and malloc
+
+https://github.com/yaml/libyaml/pull/177
+Add specific files back to .gitignore
+
+https://github.com/yaml/libyaml/pull/181
+Output error position in run-parser-test-suite.c
+
+https://github.com/yaml/libyaml/pull/191
+A couple patches to improve test suite support
+
+0.2.4 2020-04-19
+
+ - https://github.com/yaml/libyaml/pull/143
+ Add packaging/docker-dist to Makefile.am
+
+ - https://github.com/yaml/libyaml/pull/174
+ Fix logic for document end before directive
+
+
+0.2.3 2020-04-11
+
+ - https://github.com/yaml/libyaml/pull/130
+ Fixed typo.
+
+ - https://github.com/yaml/libyaml/pull/144
+ Fix typo in comment
+
+ - https://github.com/yaml/libyaml/pull/140
+ Use pointer to const for strings that aren't/shouldn't be modified
+
+ - https://github.com/yaml/libyaml/pull/128
+ Squash a couple of warnings in example-deconstructor-alt
+
+ - https://github.com/yaml/libyaml/pull/151
+ Fix spelling for error message
+
+ - https://github.com/yaml/libyaml/pull/161
+ Make appveyor config be a hidden file
+
+ - https://github.com/yaml/libyaml/pull/159
+ Add CHANGES file
+
+ - https://github.com/yaml/libyaml/pull/160
+ Always output document end before directive (YAML 1.2 compatibility)
+
+ - https://github.com/yaml/libyaml/pull/162
+ Output document end marker after open ended scalars
+
+ - https://github.com/yaml/libyaml/pull/157
+ change cmake target name from libOFF.a to libyaml.a
+
+ - https://github.com/yaml/libyaml/pull/155
+ include/yaml.h: fix comments
+
+ - https://github.com/yaml/libyaml/pull/169
+ Fixed missing token in example
+
+ - https://github.com/yaml/libyaml/pull/127
+ Avoid recursion in the document loader.
+
+ - https://github.com/yaml/libyaml/pull/172
+ Support %YAML 1.2 directives
+
+ - https://github.com/yaml/libyaml/pull/66
+ Change dllexport controlling macro to use _WIN32
+
+0.2.2 2019-03-12
+
+ - https://github.com/yaml/libyaml/pull/95
+ build: do not install config.h
+
+ - https://github.com/yaml/libyaml/pull/97
+ appveyor.yml: fix Release build
+
+ - https://github.com/yaml/libyaml/pull/103
+ Remove unused code in yaml_document_delete
+
+ - https://github.com/yaml/libyaml/pull/104
+ Allow colons in plain scalars inside flow collections
+
+ - https://github.com/yaml/libyaml/pull/109
+ Fix comparison in tests/run-emitter.c
+
+ - https://github.com/yaml/libyaml/pull/117
+ Fix typo error
+
+ - https://github.com/yaml/libyaml/pull/119
+ The closing single quote needs to be indented...
+
+ - https://github.com/yaml/libyaml/pull/121
+ fix token name typos in comments
+
+ - https://github.com/yaml/libyaml/pull/122
+ Revert removing of open_ended after top level plain scalar
+
+ - https://github.com/yaml/libyaml/pull/125
+ Cherry-picks from PR 27
+
+ - https://github.com/yaml/libyaml/pull/135
+ Windows/C89 compatibility
+
+ - https://github.com/yaml/libyaml/pull/136
+ allow override of Windows static lib name
+
+0.2.1 2018-06-24
+
+ - https://github.com/yaml/libyaml/pull/10
+ Support static and dynamic libraries
+
+ - https://github.com/yaml/libyaml/pull/12
+ Use .gitignore instead of .hgignore
+
+ - https://github.com/yaml/libyaml/pull/13
+ Add support for `make test` and travis
+
+ - https://github.com/yaml/libyaml/pull/14
+ Dockerfile for testing
+
+ - https://github.com/yaml/libyaml/pull/15
+ Apply old fix for `\/` that is not in master.
+
+ - https://github.com/yaml/libyaml/pull/17
+ Update license to include all years until now.
+
+ - https://github.com/yaml/libyaml/pull/18
+ Port bug fix from Perl binding
+
+ - https://github.com/yaml/libyaml/pull/22
+ Fix misspell: preceed
+
+ - https://github.com/yaml/libyaml/pull/23
+ Removed trailing-whitespaces
+
+ - https://github.com/yaml/libyaml/pull/24
+ Fix typo
+
+ - https://github.com/yaml/libyaml/pull/25
+ added an examples directory with a few yaml examples
+
+ - https://github.com/yaml/libyaml/pull/26
+ Added missing Cflags path in pkg-config file
+
+ - https://github.com/yaml/libyaml/pull/31
+ add unit tests to cmake configuration
+
+ - https://github.com/yaml/libyaml/pull/32
+ Include an example of a custom tag from Python
+
+ - https://github.com/yaml/libyaml/pull/33
+ Include an example of a %YAML tag
+
+ - https://github.com/yaml/libyaml/pull/34
+ Added an example of using a global tag
+
+ - https://github.com/yaml/libyaml/pull/36
+ Fix -Wformat compilation errors in tests
+
+ - https://github.com/yaml/libyaml/pull/37
+ Update bug report URL in LibYAML
+
+ - https://github.com/yaml/libyaml/pull/38
+ Use AM_CPPFLAGS since autotools deprecated INCLUDE
+
+ - https://github.com/yaml/libyaml/pull/39
+ Update bug report URL in README
+
+ - https://github.com/yaml/libyaml/pull/41
+ Add travis and Makefile support for libyaml-test
+
+ - https://github.com/yaml/libyaml/pull/43
+ Add Dockerfile for Fedora 25
+
+ - https://github.com/yaml/libyaml/pull/44
+ WIP: Enable all warnings (-Wall) in libyaml and tests
+
+ - https://github.com/yaml/libyaml/pull/45
+ Fix typo
+
+ - https://github.com/yaml/libyaml/pull/47
+ Move travis script guts to separate file
+
+ - https://github.com/yaml/libyaml/pull/48
+ `yaml/libyaml-test` should become part of `yaml/libyaml`
+
+ - https://github.com/yaml/libyaml/pull/50
+ Add a GNUMakefile for immediate make targets
+
+ - https://github.com/yaml/libyaml/pull/53
+ Switch from test blacklist to whitelist
+
+ - https://github.com/yaml/libyaml/pull/55
+ Update defs for MingGW support on Windows
+
+ - https://github.com/yaml/libyaml/pull/58
+ Improve CMakeLists
+
+ - https://github.com/yaml/libyaml/pull/64
+ README: Update libyaml link
+
+ - https://github.com/yaml/libyaml/pull/69
+ Skip 5 tests in libyaml-emitter.list
+
+ - https://github.com/yaml/libyaml/pull/74
+ Forbid escaped singlequote in doublequotes
+
+ - https://github.com/yaml/libyaml/pull/76
+ Rewrite make test-suite
+
+ - https://github.com/yaml/libyaml/pull/77
+ Undefined PTRDIFF_MAX on HP-UX
+
+ - https://github.com/yaml/libyaml/pull/78
+ Fixed most compiler warnings -Wall -Wextra
+
+ - https://github.com/yaml/libyaml/pull/82
+ Move yaml-test-suite integration onto a separate branch.
+
+ - https://github.com/yaml/libyaml/pull/86
+ Fix problems in CI failures (travis and semaphore)
+
+ - https://github.com/yaml/libyaml/pull/87
+ appveyor.yml: add mingw-w64 builds
+
+ - https://github.com/yaml/libyaml/pull/88
+ add -no-undefined to src/Makefile.am
+
+ - https://github.com/yaml/libyaml/pull/89
+ Added alpine linux testing to dockerfiles
+
+ - https://github.com/yaml/libyaml/pull/93
+ remove need for PTRDIFF_MAX
+
+ - https://github.com/yaml/libyaml/pull/94
+ .gitignore: major cleanup
+
+ - https://github.com/yaml/libyaml/pull/120
+ Fix doc.
+
+0.1.7 2016-08-27
+
+ - Fixed segfault in yaml_string_write_handler.
+
+ - Fixed invalid simple key assertion.
+
+ - Fixed error handling in some examples (thank to Mathias Svensson).
+
+ - Removed obsolete VS project files.
+
+0.1.6 2014-03-26
+
+ - https://github.com/yaml/libyaml/commit/d1003a9
+ Fixed heap overflow in yaml_parser_scan_uri_escapes (Thanks
+ Ivan Fratric of the Google Security Team).
+
+ - https://github.com/yaml/libyaml/commit/662f4be
+ Added tag 0.1.5 for changeset a5142b24428b
+
+0.1.5 2014-02-03
+
+ - https://github.com/yaml/libyaml/commit/303b455
+ Manually define PTRDIFF_MAX for VS C compiler.
+
+ - https://github.com/yaml/libyaml/commit/1ef1171
+ Forgot to set the error state.
+
+ - https://github.com/yaml/libyaml/commit/c9479c7
+ Limit input size to SIZE_MAX/2.
+
+ - https://github.com/yaml/libyaml/commit/c201bf6
+ Guard against overflows in indent and flow_level.
+
+ - https://github.com/yaml/libyaml/commit/bb8ab82
+ Added .hgignore.
+
+ - https://github.com/yaml/libyaml/commit/2d94fc5
+ Prevent node index overflow (Reported by Florian Weimer).
+
+ - https://github.com/yaml/libyaml/commit/df33f25
+ Bumped the version number.
+
+ - https://github.com/yaml/libyaml/commit/f56726b
+ Fixed invalid size_t->int cast (Thank to Florian Weimer).
+
+ - https://github.com/yaml/libyaml/commit/01e8dad
+ Added a basic CMake project.
+
+ - https://github.com/yaml/libyaml/commit/f54fc40
+ Added tag 0.1.4 for changeset 3e6507fa0c26
+
+0.1.4 2012-12-24
+
+ - Fixed a bug that prevented an empty mapping being used as a simple key
+ (thank to spitzak(at)rhythm(dot)com).
+
+ - Fixed pointer overflow when calculating the position of a potential
+ simple key (thank to ppelletier(at)oblong(dot)com).
+
+ - Fixed yaml.dll not exporting any symbols
+ (thank to pxn11432(at)nifty(dot)com).
+
+ - Added pkg-config support (thank to rainwoodman(at)gmail(dot)com).
+
+0.1.3 2009-08-29
+
+ - This release fixes non-standard structure initialization and
+ a streaming-related issue.
+
+0.1.2 2008-12-27
+
+ - Minor bugfix release
+
+0.1.1 2006-08-01
+
+ - https://github.com/yaml/libyaml/commit/5e52c31
+ Fixed a problem when the DOCUMENT-END event is not emitted until
+ the beginning of the next document is available. Fixed #51.
+ Thanks edward(at)sweetbytes.net for the bug report.
+
+ - https://github.com/yaml/libyaml/commit/dd71484
+ Add project files for Visual Studio 2003.
+
+ - https://github.com/yaml/libyaml/commit/ce8a93e
+ Fix the example_deconstructor project.
+
+ - https://github.com/yaml/libyaml/commit/c9b74de
+ Eliminate some warnings and add more doxygen definitions.
+
+ - https://github.com/yaml/libyaml/commit/0122490
+ Undefine the NDEBUG directive for the test programs.
+
+ - https://github.com/yaml/libyaml/commit/071329a
+ Fix a bug in the emitter introduced while fixing warnings for VC6.
+
+ - https://github.com/yaml/libyaml/commit/6f6bbb8
+ Add VC6 projects for the test executables.
+
+ - https://github.com/yaml/libyaml/commit/0174ed6
+ Add win32 fixes and project files for VC6.
+
+ - https://github.com/yaml/libyaml/commit/e27a3c8
+ Add functions for constructing, parsing and emitting YAML documents.
+
+ - https://github.com/yaml/libyaml/commit/a907bf8
+ Add `const` qualifier for `yaml_parser_set_input_string` parameter `input`.
+
+ - https://github.com/yaml/libyaml/commit/c83b67a
+ Force a new line at the end of the input stream even if there
+ are no a new line character. This fixes a nasty bug when libyaml hangs on
+ documents like `[[[[`. Thanks ciaranm for reporting the bug.
+
+ - https://github.com/yaml/libyaml/commit/609cce0
+ Older versions of gcc do not know about -Wno-pointer-sign.
+
+0.0.1 2006-08-01
+
+ - Initial release
diff --git a/contrib/libyaml/License b/contrib/libyaml/License
new file mode 100644
index 000000000000..3d82c281ee8c
--- /dev/null
+++ b/contrib/libyaml/License
@@ -0,0 +1,20 @@
+Copyright (c) 2017-2020 Ingy döt Net
+Copyright (c) 2006-2016 Kirill Simonov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/contrib/libyaml/Makefile.am b/contrib/libyaml/Makefile.am
new file mode 100644
index 000000000000..551c74071f7a
--- /dev/null
+++ b/contrib/libyaml/Makefile.am
@@ -0,0 +1,54 @@
+## Run `./bootstrap` to generate the "Makefile.in" files in this directory and
+## the "$SUBDIRS" subdirectories.
+
+SUBDIRS = include src . tests
+
+EXTRA_DIST = Changes ReadMe.md License CMakeLists.txt doc/doxygen.cfg
+
+LIBYAML_TEST_SUITE_RUN_REPO_DEFAULT := https://github.com/yaml/libyaml
+LIBYAML_TEST_SUITE_RUN_REPO ?= $(LIBYAML_TEST_SUITE_RUN_REPO_DEFAULT)
+LIBYAML_TEST_SUITE_RUN_BRANCH ?= run-test-suite
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = yaml-0.1.pc
+
+maintainer-clean-local:
+ rm -f aclocal.m4 config.h.in configure config/*
+ -find ${builddir} -name Makefile.in -exec rm -f '{}' ';'
+
+distclean-local:
+ rm -fr tests/run-test-suite packaging
+ -git worktree prune
+
+.PHONY: bootstrap
+bootstrap: maintainer-clean
+ ./bootstrap
+ ./configure
+ make
+
+test: all
+ make -C tests check-TESTS
+
+test-suite: tests/run-test-suite all
+ make -C $< test
+
+test-all: test test-suite
+
+tests/run-test-suite:
+ifeq ($(LIBYAML_TEST_SUITE_RUN_REPO),$(LIBYAML_TEST_SUITE_RUN_REPO_DEFAULT))
+ -git branch --track $(LIBYAML_TEST_SUITE_RUN_BRANCH) origin/$(LIBYAML_TEST_SUITE_RUN_BRANCH)
+ -git worktree prune
+ git worktree add $@ $(LIBYAML_TEST_SUITE_RUN_BRANCH)
+ else
+ git clone --branch $(LIBYAML_TEST_SUITE_RUN_BRANCH) $(LIBYAML_TEST_SUITE_RUN_REPO) $@
+ endif
+
+packaging:
+ -git branch --track $@ origin/$@
+ git worktree add --force $@ $@
+
+docker-dist: packaging
+ make -C $</docker libyaml-dist
+
+docker-test-pyyaml: packaging
+ make -C $</docker test-pyyaml
diff --git a/contrib/libyaml/ReadMe.md b/contrib/libyaml/ReadMe.md
new file mode 100644
index 000000000000..2dfcc4476dcd
--- /dev/null
+++ b/contrib/libyaml/ReadMe.md
@@ -0,0 +1,46 @@
+## LibYAML - A C library for parsing and emitting YAML.
+
+To build and install the library, run:
+
+ $ ./configure
*** 18112 LINES SKIPPED ***