git: 1d6e02cfc3f0 - stable/13 - MFV: libucl: Update to 0.9.2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 02 Oct 2025 08:20:58 UTC
The branch stable/13 has been updated by des:
URL: https://cgit.FreeBSD.org/src/commit/?id=1d6e02cfc3f091503f441834840cfcba34c29cae
commit 1d6e02cfc3f091503f441834840cfcba34c29cae
Author: Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2025-08-27 18:36:12 +0000
Commit: Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2025-10-02 07:28:55 +0000
MFV: libucl: Update to 0.9.2
- Add FREEBSD-upgrade instructions
- Add FREEBSD-Xlist file
- Remove all unnecessary files which are not required for in-tree build
Approved by: bapt
Differential Revision: https://reviews.freebsd.org/D50472
Event: Oslo Hackathon 202508
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 2326db40a1d2dd98631d70aae200ca52575139fb)
---
contrib/libucl/CMakeLists.txt | 314 -----------
contrib/libucl/ChangeLog.md | 103 ----
contrib/libucl/FREEBSD-Xlist | 40 ++
contrib/libucl/FREEBSD-upgrade | 39 ++
contrib/libucl/Makefile.am | 81 ---
contrib/libucl/Makefile.unix | 89 ---
contrib/libucl/Makefile.w32 | 92 ---
contrib/libucl/README.md | 418 --------------
contrib/libucl/autogen.sh | 2 -
contrib/libucl/configure.ac | 188 -------
contrib/libucl/doc/Makefile.am | 9 -
contrib/libucl/doc/api.md | 506 -----------------
contrib/libucl/doc/lua_api.md | 196 -------
contrib/libucl/doc/pandoc.template | 12 -
contrib/libucl/examples/ucl_cpp.cc | 26 -
contrib/libucl/haskell/hucl.hs | 123 ----
contrib/libucl/include/ucl.h | 4 +-
contrib/libucl/libucl.pc | 11 -
contrib/libucl/libucl.pc.in | 11 -
contrib/libucl/lua/Makefile.am | 26 -
contrib/libucl/lua/libucl.rockspec.in | 26 -
contrib/libucl/lua/lua_ucl.c | 83 ++-
contrib/libucl/m4/ax_lua.m4 | 664 ----------------------
contrib/libucl/m4/gcov.m4 | 89 ---
contrib/libucl/python/MANIFEST.in | 5 -
contrib/libucl/python/setup.py | 75 ---
contrib/libucl/python/src/uclmodule.c | 335 -----------
contrib/libucl/python/tests/__init__.py | 0
contrib/libucl/python/tests/compat.py | 8 -
contrib/libucl/python/tests/test_dump.py | 66 ---
contrib/libucl/python/tests/test_example.py | 59 --
contrib/libucl/python/tests/test_load.py | 122 ----
contrib/libucl/python/tests/test_validation.py | 50 --
contrib/libucl/python/ucl.pyi | 15 -
contrib/libucl/src/Makefile.am | 30 -
contrib/libucl/src/mum.h | 2 -
contrib/libucl/src/ucl_emitter.c | 80 ++-
contrib/libucl/src/ucl_emitter_streamline.c | 9 +-
contrib/libucl/src/ucl_hash.c | 146 +++--
contrib/libucl/src/ucl_msgpack.c | 4 +-
contrib/libucl/src/ucl_parser.c | 214 +++++--
contrib/libucl/src/ucl_schema.c | 1 +
contrib/libucl/src/ucl_util.c | 87 +--
contrib/libucl/stamp-h.in | 1 -
contrib/libucl/tests/.gitignore | 10 +
contrib/libucl/tests/Makefile.am | 45 --
contrib/libucl/tests/schema/definitions.json | 32 --
contrib/libucl/tests/schema/ref.json | 16 -
contrib/libucl/tests/schema/refRemote.json | 76 ---
contrib/libucl/tests/test_speed.c | 2 +-
contrib/libucl/tests/test_streamline.c | 43 +-
contrib/libucl/uthash/utlist.h | 749 ++++++++++++++++++-------
contrib/libucl/utils/CMakeLists.txt | 12 -
contrib/libucl/utils/Makefile.am | 23 -
contrib/libucl/utils/chargen.c | 128 -----
contrib/libucl/utils/objdump.c | 185 ------
contrib/libucl/utils/ucl-tool.c | 170 ------
57 files changed, 1072 insertions(+), 4880 deletions(-)
diff --git a/contrib/libucl/CMakeLists.txt b/contrib/libucl/CMakeLists.txt
deleted file mode 100644
index 5fe772a30f88..000000000000
--- a/contrib/libucl/CMakeLists.txt
+++ /dev/null
@@ -1,314 +0,0 @@
-PROJECT(libucl C)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
-
-SET(LIBUCL_VERSION_MAJOR 0)
-SET(LIBUCL_VERSION_MINOR 5)
-SET(LIBUCL_VERSION_PATCH 0)
-
-SET(LIBUCL_VERSION
- "${LIBUCL_VERSION_MAJOR}.${LIBUCL_VERSION_MINOR}.${LIBUCL_VERSION_PATCH}")
-
-INCLUDE(CheckCCompilerFlag)
-INCLUDE(CheckCSourceCompiles)
-INCLUDE(FindOpenSSL)
-INCLUDE(GNUInstallDirs)
-
-OPTION(ENABLE_URL_INCLUDE "Enable urls in ucl includes (requires libcurl or libfetch) [default: OFF]" OFF)
-OPTION(ENABLE_URL_SIGN "Enable signatures check in ucl includes (requires openssl) [default: OFF]" OFF)
-OPTION(BUILD_SHARED_LIBS "Build Shared Libraries [default: OFF]" OFF)
-OPTION(ENABLE_LUA "Enable lua support [default: OFF]" OFF)
-OPTION(ENABLE_LUAJIT "Enable luajit support [default: OFF]" OFF)
-OPTION(ENABLE_UTILS "Enable building utility binaries [default: OFF]" OFF)
-
-# Find lua installation
-MACRO(FindLua)
- # Find lua libraries
- UNSET(LUA_INCLUDE_DIR CACHE)
- UNSET(LUA_LIBRARY CACHE)
- CMAKE_PARSE_ARGUMENTS(LUA "" "VERSION_MAJOR;VERSION_MINOR;ROOT" "" ${ARGN})
-
- IF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR)
- MESSAGE(FATAL_ERROR "Invalid FindLua invocation: ${ARGN}")
- ENDIF()
-
- IF(ENABLE_LUAJIT MATCHES "ON")
- MESSAGE(STATUS "Check for luajit ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
- FIND_PATH(LUA_INCLUDE_DIR luajit.h
- HINTS
- "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
- $ENV{LUA_DIR}
- PATH_SUFFIXES "include/luajit-2.0"
- "include/luajit${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "include/luajit${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "include/luajit-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "include/luajit"
- "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- include/lua include
- PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
- )
- FIND_LIBRARY(LUA_LIBRARY
- NAMES luajit
- "luajit-2.0"
- "luajit2.0"
- "luajit${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "luajit${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "luajit-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- HINTS
- "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
- $ENV{LUA_DIR}
- PATH_SUFFIXES lib64 lib
- PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
- DOC "Lua library"
- )
-
- IF(NOT LUA_LIBRARY OR NOT LUA_INCLUDE_DIR)
- MESSAGE(STATUS "Fallback from luajit to plain lua")
- SET(ENABLE_LUAJIT "OFF")
- MESSAGE(STATUS "Check for lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
- FIND_PATH(LUA_INCLUDE_DIR lua.h
- HINTS
- "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
- $ENV{LUA_DIR}
- PATH_SUFFIXES "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- include/lua include
- PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
- )
- FIND_LIBRARY(LUA_LIBRARY
- NAMES lua
- "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- HINTS
- "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
- $ENV{LUA_DIR}
- PATH_SUFFIXES lib64 lib
- PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
- DOC "Lua library"
- )
- ENDIF()
- ELSE(ENABLE_LUAJIT MATCHES "ON")
- MESSAGE(STATUS "Check for lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
- FIND_PATH(LUA_INCLUDE_DIR lua.h
- HINTS
- "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
- $ENV{LUA_DIR}
- PATH_SUFFIXES "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- include/lua include
- PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
- )
- FIND_LIBRARY(LUA_LIBRARY
- NAMES lua
- "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
- "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- "lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
- HINTS
- "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
- $ENV{LUA_DIR}
- PATH_SUFFIXES lib64 lib
- PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
- DOC "Lua library"
- )
- ENDIF(ENABLE_LUAJIT MATCHES "ON")
-
- IF(LUA_LIBRARY AND LUA_INCLUDE_DIR)
- SET(LUA_FOUND 1)
- IF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR)
- SET(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR})
- SET(LUA_VERSION_MINOR ${LUA_VERSION_MINOR})
- ENDIF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR)
- IF(ENABLE_LUAJIT MATCHES "ON")
- MESSAGE(STATUS "Found luajit ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
- ELSE(ENABLE_LUAJIT MATCHES "ON")
- MESSAGE(STATUS "Found lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
- ENDIF(ENABLE_LUAJIT MATCHES "ON")
- ENDIF(LUA_LIBRARY AND LUA_INCLUDE_DIR)
-ENDMACRO()
-
-IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt)
-ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-
-IF(ENABLE_URL_INCLUDE MATCHES "ON")
- FIND_LIBRARY(LIBFETCH_LIBRARY NAMES fetch PATHS PATH_SUFFIXES lib64 lib
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /usr/local
- /usr
- /sw
- /opt/local
- /opt/csw
- /opt
- DOC "Path where the libfetch library can be found")
- IF(LIBFETCH_LIBRARY)
- FIND_FILE(HAVE_FETCH_H NAMES fetch.h PATHS /usr/include
- /opt/include
- /usr/local/include
- DOC "Path to libfetch header")
- ELSE(LIBFETCH_LIBRARY)
- # Try to find libcurl
- FIND_PACKAGE(CURL)
- IF(NOT CURL_FOUND)
- MESSAGE(WARNING "Neither libcurl nor libfetch were found, no support of URL includes in configuration")
- ENDIF(NOT CURL_FOUND)
- ENDIF(LIBFETCH_LIBRARY)
-ENDIF(ENABLE_URL_INCLUDE MATCHES "ON")
-
-set(SYNC_BUILTINS_TEST_SOURCE [====[
-int main()
-{
- unsigned long val;
-
- __sync_bool_compare_and_swap(&val, 0, 1);
- __sync_add_and_fetch(&val, 1);
- __sync_fetch_and_add(&val, 0);
- __sync_sub_and_fetch(&val, 1);
-
- return 0;
-}
-]====])
-
-CHECK_C_SOURCE_COMPILES("${SYNC_BUILTINS_TEST_SOURCE}" HAVE_ATOMIC_BUILTINS)
-IF(NOT HAVE_ATOMIC_BUILTINS)
- MESSAGE(WARNING "Libucl references could be thread-unsafe because atomic builtins are missing")
-ENDIF(NOT HAVE_ATOMIC_BUILTINS)
-
-SET(CMAKE_C_WARN_FLAGS "")
-CHECK_C_COMPILER_FLAG(-W SUPPORT_W)
-CHECK_C_COMPILER_FLAG(-Wno-pointer-sign SUPPORT_WPOINTER_SIGN)
-CHECK_C_COMPILER_FLAG(-Wno-unused-parameter SUPPORT_WUNUSED_PARAMETER)
-IF(SUPPORT_W)
- SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -W")
-ENDIF(SUPPORT_W)
-IF(SUPPORT_WPOINTER_SIGN)
- SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wno-pointer-sign")
-ENDIF(SUPPORT_WPOINTER_SIGN)
-IF(SUPPORT_WUNUSED_PARAMETER)
- SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wno-unused-parameter")
-ENDIF(SUPPORT_WUNUSED_PARAMETER)
-
-SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_WARN_FLAGS}" )
-
-IF(ENABLE_URL_SIGN MATCHES "ON")
- IF(OPENSSL_FOUND)
- SET(HAVE_OPENSSL 1)
- INCLUDE_DIRECTORIES("${OPENSSL_INCLUDE_DIR}")
- ENDIF(OPENSSL_FOUND)
-ENDIF(ENABLE_URL_SIGN MATCHES "ON")
-
-SET(UCL_COMPILE_DEFS)
-IF(HAVE_FETCH_H)
- LIST(APPEND UCL_COMPILE_DEFS -DHAVE_FETCH_H=1)
-ENDIF(HAVE_FETCH_H)
-IF(CURL_FOUND)
- LIST(APPEND UCL_COMPILE_DEFS -DCURL_FOUND=1)
-ENDIF(CURL_FOUND)
-IF(HAVE_OPENSSL)
- LIST(APPEND UCL_COMPILE_DEFS -DHAVE_OPENSSL=1)
-ENDIF(HAVE_OPENSSL)
-IF(HAVE_ATOMIC_BUILTINS)
- LIST(APPEND UCL_COMPILE_DEFS -DHAVE_ATOMIC_BUILTINS=1)
-ENDIF(HAVE_ATOMIC_BUILTINS)
-
-SET(UCLSRC src/ucl_util.c
- src/ucl_parser.c
- src/ucl_emitter.c
- src/ucl_emitter_streamline.c
- src/ucl_emitter_utils.c
- src/ucl_hash.c
- src/ucl_schema.c
- src/ucl_msgpack.c
- src/ucl_sexp.c)
-
-SET(UCLHDR include/ucl.h
- include/ucl++.h)
-
-SET (LIB_TYPE STATIC)
-IF (BUILD_SHARED_LIBS)
- SET (LIB_TYPE SHARED)
-ENDIF (BUILD_SHARED_LIBS)
-ADD_LIBRARY(ucl ${LIB_TYPE} ${UCLSRC})
-ADD_LIBRARY(ucl::ucl ALIAS ucl)
-SET_TARGET_PROPERTIES(ucl PROPERTIES VERSION ${LIBUCL_VERSION} SOVERSION ${LIBUCL_VERSION_MAJOR})
-TARGET_INCLUDE_DIRECTORIES(ucl
- PUBLIC
- include
- PRIVATE
- src
- uthash
- klib)
-TARGET_COMPILE_DEFINITIONS(ucl
- PRIVATE
- ${UCL_COMPILE_DEFS}
-)
-
-IF(ENABLE_LUA MATCHES "ON")
- IF(ENABLE_LUAJIT MATCHES "ON")
- FindLua(VERSION_MAJOR "5" VERSION_MINOR "1" ROOT "${LUA_ROOT}")
- IF(NOT LUA_FOUND)
- MESSAGE(FATAL_ERROR "Lua not found, lua support is required")
- ELSE(NOT LUA_FOUND)
- INCLUDE_DIRECTORIES("${LUA_INCLUDE_DIR}")
- ENDIF(NOT LUA_FOUND)
- ELSE(ENABLE_LUAJIT MATCHES "ON")
- FindLua(VERSION_MAJOR "5" VERSION_MINOR "2" ROOT "${LUA_ROOT}")
- IF(NOT LUA_FOUND)
- FindLua(VERSION_MAJOR "5" VERSION_MINOR "1" ROOT "${LUA_ROOT}")
- ENDIF(NOT LUA_FOUND)
- IF(NOT LUA_FOUND)
- MESSAGE(FATAL_ERROR "Lua not found, lua support is required")
- ELSE(NOT LUA_FOUND)
- INCLUDE_DIRECTORIES("${LUA_INCLUDE_DIR}")
- ENDIF(NOT LUA_FOUND)
- ENDIF(ENABLE_LUAJIT MATCHES "ON")
- SET(UCL_LUA_SRC lua/lua_ucl.c)
- ADD_LIBRARY(lua-ucl ${LIB_TYPE} ${UCL_LUA_SRC})
- ADD_LIBRARY(ucl::lua ALIAS lua-ucl)
- IF(ENABLE_LUAJIT MATCHES "ON")
- TARGET_LINK_LIBRARIES(lua-ucl "${LUAJIT_LIBRARY}")
- ELSE(ENABLE_LUAJIT MATCHES "ON")
- TARGET_LINK_LIBRARIES(lua-ucl "${LUA_LIBRARY}")
- ENDIF(ENABLE_LUAJIT MATCHES "ON")
- TARGET_LINK_LIBRARIES(lua-ucl ucl)
- TARGET_INCLUDE_DIRECTORIES(lua-ucl PUBLIC include PRIVATE src uthash)
- SET_TARGET_PROPERTIES(lua-ucl PROPERTIES
- VERSION ${LIBUCL_VERSION}
- SOVERSION ${LIBUCL_VERSION_MAJOR}
- PUBLIC_HEADER include/lua_ucl.h)
- INSTALL(TARGETS lua-ucl DESTINATION ${CMAKE_INSTALL_LIBDIR}
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-ENDIF()
-
-IF(HAVE_FETCH_H)
- TARGET_LINK_LIBRARIES(ucl fetch)
-ELSE(HAVE_FETCH_H)
- IF(CURL_FOUND)
- TARGET_LINK_LIBRARIES(ucl ${CURL_LIBRARIES})
- ENDIF(CURL_FOUND)
-ENDIF(HAVE_FETCH_H)
-IF(ENABLE_URL_SIGN MATCHES "ON")
- IF(OPENSSL_FOUND)
- TARGET_LINK_LIBRARIES(ucl ${OPENSSL_LIBRARIES})
- ENDIF(OPENSSL_FOUND)
-ENDIF(ENABLE_URL_SIGN MATCHES "ON")
-
-IF(UNIX)
- TARGET_LINK_LIBRARIES(ucl -lm)
-ENDIF(UNIX)
-
-SET_TARGET_PROPERTIES(ucl PROPERTIES
- PUBLIC_HEADER "${UCLHDR}")
-
-INSTALL(TARGETS ucl DESTINATION ${CMAKE_INSTALL_LIBDIR}
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
-IF(ENABLE_UTILS MATCHES "ON")
- ADD_SUBDIRECTORY(utils)
-ENDIF()
-
diff --git a/contrib/libucl/ChangeLog.md b/contrib/libucl/ChangeLog.md
deleted file mode 100644
index cba29aa9a7b5..000000000000
--- a/contrib/libucl/ChangeLog.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# Version history
-
-## Libucl 0.5
-
-- Streamline emitter has been added, so it is now possible to output partial `ucl` objects
-- Emitter now is more flexible due to emitter_context structure
-
-### 0.5.1
-- Fixed number of bugs and memory leaks
-
-### 0.5.2
-
-- Allow userdata objects to be emitted and destructed
-- Use userdata objects to store lua function references
-
-### Libucl 0.6
-
-- Reworked macro interface
-
-### Libucl 0.6.1
-
-- Various utilities fixes
-
-### Libucl 0.7.0
-
-- Move to klib library from uthash to reduce memory overhead and increase performance
-
-### Libucl 0.7.1
-
-- Added safe iterators API
-
-### Libucl 0.7.2
-
-- Fixed serious bugs in schema and arrays iteration
-
-### Libucl 0.7.3
-
-- Fixed a bug with macros that come after an empty object
-- Fixed a bug in include processing when an incorrect variable has been destroyed (use-after-free)
-
-### Libucl 0.8.0
-
-- Allow to save comments and macros when parsing UCL documents
-- C++ API
-- Python bindings (by Eitan Adler)
-- Add msgpack support for parser and emitter
-- Add Canonical S-expressions parser for libucl
-- CLI interface for parsing and validation (by Maxim Ignatenko)
-- Implement include with priority
-- Add 'nested' functionality to .include macro (by Allan Jude)
-- Allow searching an array of paths for includes (by Allan Jude)
-- Add new .load macro (by Allan Jude)
-- Implement .inherit macro (#100)
-- Add merge strategies
-- Add schema validation to lua API
-- Add support for external references to schema validation
-- Add coveralls integration to libucl
-- Implement tests for 80% of libucl code lines
-- Fix tonns of minor and major bugs
-- Improve documentation
-- Rework function names to the common conventions (old names are preserved for backwards compatibility)
-- Add Coverity scan integration
-- Add fuzz tests
-
-**Incompatible changes**:
-
-- `ucl_object_emit_full` now accepts additional argument `comments` that could be used to emit comments with UCL output
-
-### Libucl 0.8.1
-
-- Create ucl_parser_add_file_full() to be able to specify merge mode and parser type (by Allan Jude)
-- C++ wrapper improvements (by @ftilde)
-- C++ wrapper: add convenience method at() and lookup() (by Yonghee Kim)
-- C++ wrapper: add assignment operator to Ucl class (by Yonghee Kim)
-- C++ wrapper: support variables in parser (by Yonghee Kim)
-- C++ wrapper: refactoring C++ interface (by Yonghee Kim):
- - use auto variables (if possible)
- - remove dangling expressions
- - use std::set::emplace instead of std::set::insert
- - not use std::move in return statement; considering copy elision
-- C++ wrapper: fix compilation error and warnings (by Zhe Wang)
-- C++ wrapper: fix iteration over objects in which the first value is `false` (by Zhe Wang)
-- C++ wrapper: Macro helper functions (by Chris Meacham)
-- C++ wrapper: Changing the duplicate strategy in the C++ API (by Chris Meacham)
-- C++ wrapper: Added access functions for the size of a UCL_ARRAY (by Chris Meacham)
-- Fix caseless comparison
-- Fix include when EPERM is issued
-- Fix Windows build
-- Allow to reserve space in arrays and hashes
-- Fix bug with including of empty files
-- Move to mum_hash from xxhash
-- Fix msgpack on non-x86
-- python: Add support to Python 3 (by Denis Volpato Martins)
-- python: Add support for Python 2.6 tests (by Denis Volpato Martins)
-- python: Implement validation function and tests (by Denis Volpato Martins)
-- python: Added UCL_NULL handling and tests (by Denis Volpato Martins)
-- Fix schema validation for patternProperties with object data (by Denis Volpato Martins)
-- Remove the dependency on NBBY, add missing <strings.h> include (by Ed Schouten)
-- Allow to emit msgpack from Lua
-- Performance improvements in Lua API
-- Allow to pass opaque objects in Lua API for transparent C passthrough
-- Various bugs fixed
-- Couple of memory leaks plugged
\ No newline at end of file
diff --git a/contrib/libucl/FREEBSD-Xlist b/contrib/libucl/FREEBSD-Xlist
new file mode 100644
index 000000000000..6d8cb4ff8f5b
--- /dev/null
+++ b/contrib/libucl/FREEBSD-Xlist
@@ -0,0 +1,40 @@
+.github
+.gitignore
+CMakeLists.txt
+ChangeLog.md
+Makefile.am
+Makefile.unix
+Makefile.w32
+README.md
+autogen.sh
+configure.ac
+doc/Makefile.am
+doc/api.md
+doc/lua_api.md
+doc/pandoc.template
+examples/ucl_cpp.cc
+haskell/hucl.hs
+libucl.pc.in
+lua/Makefile.am
+lua/libucl.rockspec.in
+m4/.gitignore
+m4/ax_lua.m4
+m4/gcov.m4
+python/MANIFEST.in
+python/setup.py
+python/src/uclmodule.c
+python/tests/__init__.py
+python/tests/compat.py
+python/tests/test_dump.py
+python/tests/test_example.py
+python/tests/test_load.py
+python/tests/test_validation.py
+python/ucl.pyi
+src/Makefile.am
+stamp-h.in
+tests/Makefile.am
+utils/CMakeLists.txt
+utils/Makefile.am
+utils/chargen.c
+utils/objdump.c
+utils/ucl-tool.c
diff --git a/contrib/libucl/FREEBSD-upgrade b/contrib/libucl/FREEBSD-upgrade
new file mode 100644
index 000000000000..b80736d7877b
--- /dev/null
+++ b/contrib/libucl/FREEBSD-upgrade
@@ -0,0 +1,39 @@
+# FreeBSD libucl import instruction
+#
+# At least the following ports are required when importing libucl:
+# - devel/autoconf
+# - devel/automake
+# - devel/git
+# - devel/gmake
+# - devel/libtool
+#
+# 1. Vendor import
+#
+# $ git clone https://github.com/vstakhov/libucl.git /tmp/libucl
+# $ cd /tmp/libucl
+# $ git checkout <REF_BRANCH_TO_BE_IMPORTED>
+# $ cd /usr/src
+# $ git checkout vendor/libucl
+# $ rsync -va --delete --exclude=.git /tmp/libucl/ /usr/src/contrib/libucl/
+# $ git add .
+# $ git commit -m "vendor import libucl <REF_BRANCH_TO_BE_IMPORTED>"
+# $ git tag -a vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED> -m "vendor import libucl <REF_BRANCH_TO_BE_IMPORTED>"
+# $ git push --follow-tags freebsd vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED>
+#
+# 2. Test
+#
+# $ cd /usr/src
+# $ git checkout vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED>
+# $ ./autogen.sh
+# $ ./configure
+# $ gmake
+# $ gmake check
+# $ gmake clean
+#
+# 3. Merge vendor tree
+#
+# $ git subtree merge -P contrib/libucl vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED>
+# $ sh -c 'for F in `cat FREEBSD-Xlist | grep -v FreeBSD`; do rm -rf ./$F ; done'
+#
+# Recheck if there were any new files were added which are not necessary in the
+# contrib tree. If so, remove them and also add them to the FREEBSD-Xlist file.
diff --git a/contrib/libucl/Makefile.am b/contrib/libucl/Makefile.am
deleted file mode 100644
index 5b51bcc3b468..000000000000
--- a/contrib/libucl/Makefile.am
+++ /dev/null
@@ -1,81 +0,0 @@
-ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = uthash klib README.md
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libucl.pc
-
-if LUA_SUB
- LUA_SUBDIR = lua
-endif
-
-COVERAGE_INFO_FILE = $(top_builddir)/coverage.info
-COVERAGE_REPORT_DIR = $(top_builddir)/coverage
-
-.PHONY = coverage-requirement-check clean-coverage-report
-
-coverage-requirement-check:
- @if test ! -e $(GCOV); then \
- echo "Cannot find $(GCOV). Please install gcov."; \
- exit 1; \
- fi
-
-coverage: coverage-requirement-check clean-coverage coverage-build coverage-check coverage-report
- @echo "Please execute 'make clean' before 'make' or 'make check' to remove instrumented object files(compiled with -O0 etc.). Note that 'make clean' also remove coverage data."
-
-coverage-build: coverage-requirement-check
- @if test `find $(top_builddir) -name "*.gcno" | wc -l` -eq 0; then \
- echo "Start to remove old non-instrumented object files..."; \
- $(MAKE) $(AM_MAKEFLAGS) clean; \
- echo "Successfully removed old non-instrumented object files."; \
- fi
- @echo "Start to build libraries with coverage options..."
- $(MAKE) $(AM_MAKEFLAGS) \
- CFLAGS="$(CFLAGS) $(COVERAGE_CFLAGS) $(COVERAGE_OPTFLAGS)" \
- CXXFLAGS="$(CXXFLAGS) $(COVERAGE_CXXFLAGS) $(COVERAGE_OPTFLAGS)" \
- LDFLAGS="$(LDFLAGS) $(COVERAGE_LDFLAGS)" \
- LIBS="$(LIBS) $(COVERAGE_LIBS)"
- @echo "Successfully built libraries with coverage options."
-
-coverage-check: coverage-requirement-check
- @echo "Start to run tests with instrumented libraries..."
- $(MAKE) $(AM_MAKEFLAGS) check \
- CFLAGS="$(CFLAGS) $(COVERAGE_CFLAGS) $(COVERAGE_OPTFLAGS)" \
- CXXFLAGS="$(CXXFLAGS) $(COVERAGE_CXXFLAGS) $(COVERAGE_OPTFLAGS)" \
- LDFLAGS="$(LDFLAGS) $(COVERAGE_LDFLAGS)" \
- LIBS="$(LIBS) $(COVERAGE_LIBS)"
- @echo "Successfully run tests with instrumented libraries."
-
-coverage-lcov: coverage-check coverage-requirement-check
- $(LCOV) --capture \
- --directory "$(top_builddir)/" \
- --output-file $(COVERAGE_INFO_FILE) \
- --gcov-tool $(GCOV) \
- --compat-libtool --checksum
- $(LCOV) --extract $(COVERAGE_INFO_FILE) `pwd`/src/ucl_\* \
- --output-file $(COVERAGE_INFO_FILE)
-
-coverage-report: coverage-lcov
- @echo "Start to create coverage reports..."
- $(GENHTML) --prefix "$(top_srcdir)" \
- --output-directory $(COVERAGE_REPORT_DIR) \
- --title $(PACKAGE_NAME) \
- --legend --show-details \
- $(GENHTML_OPTIONS) \
- $(COVERAGE_INFO_FILE)
- @echo "Successfully created coverage reports into $(COVERAGE_REPORT_DIR) directory."
-
-clean-coverage-report:
- -rm -rf $(COVERAGE_INFO_FILE)
- -rm -rf $(COVERAGE_REPORT_DIR)
-
-clean-coverage: clean-coverage-report
- -$(LCOV) --gcov-tool $(GCOV) --zerocounters --directory $(top_builddir)
- @if xargs --version 2>/dev/null; then \
- find $(top_builddir) -name "*.gcno" | xargs --no-run-if-empty rm; \
- else \
- find $(top_builddir) -name "*.gcno" | xargs rm; \
- fi
-
-clean-local: clean-coverage
-
-SUBDIRS = src tests utils doc $(LUA_SUBDIR)
diff --git a/contrib/libucl/Makefile.unix b/contrib/libucl/Makefile.unix
deleted file mode 100644
index 0653d4843f7e..000000000000
--- a/contrib/libucl/Makefile.unix
+++ /dev/null
@@ -1,89 +0,0 @@
-CC ?= gcc
-DESTDIR ?= /usr/local
-LD ?= gcc
-C_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src -I./klib
-MAJOR_VERSION = 0
-MINOR_VERSION = 2
-PATCH_VERSION = 9
-VERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)"
-SONAME = libucl.so
-SONAME_FULL = $(SONAME).$(MAJOR_VERSION)
-OBJDIR ?= .obj
-TESTDIR ?= tests
-SRCDIR ?= src
-INCLUDEDIR ?= include
-MKDIR ?= mkdir
-INSTALL ?= install
-RM ?= rm
-RMDIR ?= rmdir
-LN ?= ln
-LD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm
-LD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl
-LD_ADD ?= -lrt
-COPT_FLAGS ?= -O2
-HDEPS = $(SRCDIR)/ucl_hash.h \
- $(SRCDIR)/ucl_chartable.h \
- $(SRCDIR)/ucl_internal.h \
- $(INCLUDEDIR)/ucl.h \
- $(SRCDIR)/mum.h
-OBJECTS = $(OBJDIR)/ucl_hash.o \
- $(OBJDIR)/ucl_util.o \
- $(OBJDIR)/ucl_parser.o \
- $(OBJDIR)/ucl_emitter.o \
- $(OBJDIR)/ucl_schema.o
-
-all: $(OBJDIR) $(OBJDIR)/$(SONAME)
-
-$(OBJDIR)/$(SONAME): $(OBJDIR)/$(SONAME_FULL)
- $(LN) -sf $(SONAME_FULL) $(OBJDIR)/$(SONAME)
-
-$(OBJDIR)/$(SONAME_FULL): $(OBJECTS)
- $(CC) -o $(OBJDIR)/$(SONAME_FULL) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS)
-
-$(OBJDIR):
- @$(MKDIR) -p $(OBJDIR)
-
-# Compile rules
-$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c
-$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c
-$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c
-$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c
-$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c
-
-clean:
- $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME_FULL) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate $(OBJDIR)/test_schema || true
- $(RMDIR) $(OBJDIR)
-
-# Utils
-
-chargen: utils/chargen.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c
-objdump: utils/objdump.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS)
-
-# Tests
-
-test: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate $(OBJDIR)/test_schema
-
-run-test: test
- TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate $(OBJDIR)/test_schema
-
-$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS)
-$(OBJDIR)/test_schema: $(TESTDIR)/test_schema.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_schema $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_schema.c $(LD_UCL_FLAGS)
-$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_speed $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_speed.c $(LD_UCL_FLAGS) $(LD_ADD)
-$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_generate $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_generate.c $(LD_UCL_FLAGS) $(LD_ADD)
-
-install: $(OBJDIR)/$(SONAME)
- $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME)
- $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h
-
-.PHONY: clean $(OBJDIR)
diff --git a/contrib/libucl/Makefile.w32 b/contrib/libucl/Makefile.w32
deleted file mode 100644
index 5d9398bf1988..000000000000
--- a/contrib/libucl/Makefile.w32
+++ /dev/null
@@ -1,92 +0,0 @@
-CC ?= gcc
-DESTDIR ?= /usr/local
-LD ?= gcc
-C_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src
-MAJOR_VERSION = 0
-MINOR_VERSION = 2
-PATCH_VERSION = 9
-VERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)"
-SONAME = libucl.dll
-OBJDIR ?= .obj
-TESTDIR ?= tests
-SRCDIR ?= src
-INCLUDEDIR ?= include
-MKDIR ?= mkdir
-INSTALL ?= install
-RM ?= rm
-RMDIR ?= rmdir
-ifeq (Windows_NT, $(OS))
-LN ?= ln
-else
-LN ?= rem ln
-endif
-LD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm
-LD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl
-LD_ADD ?= -lrt
-COPT_FLAGS ?= -O2
-HDEPS = $(SRCDIR)/ucl_hash.h \
- $(SRCDIR)/ucl_chartable.h \
- $(SRCDIR)/ucl_internal.h \
- $(INCLUDEDIR)/ucl.h \
- $(SRCDIR)/mum.h
-OBJECTS = $(OBJDIR)/ucl_hash.o \
- $(OBJDIR)/ucl_util.o \
- $(OBJDIR)/ucl_parser.o \
- $(OBJDIR)/ucl_emitter.o \
- $(OBJDIR)/ucl_emitter_utils.o \
- $(OBJDIR)/ucl_schema.o
-
-all: $(OBJDIR) $(OBJDIR)/$(SONAME)
-
-$(OBJDIR)/$(SONAME): $(OBJECTS)
- $(CC) -o $(OBJDIR)/$(SONAME) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS)
-
-$(OBJDIR):
- @$(MKDIR) -p $(OBJDIR)
-
-# Compile rules
-$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c
-$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c
-$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c
-$(OBJDIR)/ucl_emitter_utils.o: $(SRCDIR)/ucl_emitter_utils.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_emitter_utils.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter_utils.c
-$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c
-$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS)
- $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c
-$(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS)
- $(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c
-
-clean:
- $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate
- $(RMDIR) $(OBJDIR)
-
-# Utils
-
-chargen: utils/chargen.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c
-objdump: utils/objdump.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS)
-
-# Tests
-
-test: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate
-
-run-test: test
- TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate
-
-$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS)
-$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_speed $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_speed.c $(LD_UCL_FLAGS) $(LD_ADD)
-$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME)
- $(CC) -o $(OBJDIR)/test_generate $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_generate.c $(LD_UCL_FLAGS) $(LD_ADD)
-
-install: $(OBJDIR)/$(SONAME)
- $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME)
- $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h
-
-.PHONY: clean $(OBJDIR)
diff --git a/contrib/libucl/README.md b/contrib/libucl/README.md
deleted file mode 100644
index 53d8a651d73b..000000000000
--- a/contrib/libucl/README.md
+++ /dev/null
@@ -1,418 +0,0 @@
-# LIBUCL
-
-[](https://circleci.com/gh/vstakhov/libucl)
-[](https://scan.coverity.com/projects/4138)
-[](https://coveralls.io/github/vstakhov/libucl?branch=master)
-
-**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)*
-
-- [Introduction](#introduction)
-- [Basic structure](#basic-structure)
-- [Improvements to the json notation](#improvements-to-the-json-notation)
- - [General syntax sugar](#general-syntax-sugar)
- - [Automatic arrays creation](#automatic-arrays-creation)
- - [Named keys hierarchy](#named-keys-hierarchy)
- - [Convenient numbers and booleans](#convenient-numbers-and-booleans)
-- [General improvements](#general-improvements)
- - [Comments](#comments)
- - [Macros support](#macros-support)
- - [Variables support](#variables-support)
- - [Multiline strings](#multiline-strings)
- - [Single quoted strings](#single-quoted-strings)
-- [Emitter](#emitter)
-- [Validation](#validation)
-- [Performance](#performance)
-- [Conclusion](#conclusion)
-
-## Introduction
-
-This document describes the main features and principles of the configuration
-language called `UCL` - universal configuration language.
-
-If you are looking for the libucl API documentation you can find it at [this page](doc/api.md).
-
-## Basic structure
-
-UCL is heavily infused by `nginx` configuration as the example of a convenient configuration
-system. However, UCL is fully compatible with `JSON` format and is able to parse json files.
-For example, you can write the same configuration in the following ways:
-
-* in nginx like:
-
-```nginx
-param = value;
-section {
- param = value;
- param1 = value1;
- flag = true;
- number = 10k;
- time = 0.2s;
- string = "something";
- subsection {
- host = {
- host = "hostname";
- port = 900;
- }
- host = {
- host = "hostname";
- port = 901;
- }
- }
-}
-```
-
-* or in JSON:
-
-```json
-{
- "param": "value",
- "section": {
- "param": "value",
- "param1": "value1",
- "flag": true,
- "number": 10000,
- "time": "0.2s",
- "string": "something",
- "subsection": {
- "host": [
- {
- "host": "hostname",
- "port": 900
- },
- {
- "host": "hostname",
- "port": 901
- }
- ]
- }
- }
-}
-```
-
-## Improvements to the json notation.
-
-There are various things that make ucl configuration more convenient for editing than strict json:
-
-### General syntax sugar
-
*** 6765 LINES SKIPPED ***