nginx-module-opentracing: updated to 0.14.0.

While here, Thrift has been moved from Hunter to contrib/
for easier maintenance.
diff --git a/alpine/Makefile.module-opentracing b/alpine/Makefile.module-opentracing
index 784a13c..dbfccf0 100644
--- a/alpine/Makefile.module-opentracing
+++ b/alpine/Makefile.module-opentracing
@@ -4,6 +4,7 @@
 
 include $(CONTRIB)/src/opentracing-cpp/version
 include $(CONTRIB)/src/nginx-opentracing/version
+include $(CONTRIB)/src/thrift/version
 include $(CONTRIB)/src/jaeger-client-cpp/version
 
 MODULE_VERSION_opentracing=	$(NGINX_OPENTRACING_VERSION)
@@ -13,10 +14,15 @@
 
 MODULE_SOURCES_opentracing=	opentracing-cpp-$(OPENTRACING_CPP_VERSION).tar.gz \
 				nginx-opentracing-$(NGINX_OPENTRACING_VERSION).tar.gz \
+				thrift-$(THRIFT_VERSION).tar.gz \
 				jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION).tar.gz
 
 MODULE_PATCHES_opentracing=	$(CONTRIB)/src/opentracing-cpp/CMakeLists.txt.patch \
-				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch
+				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch \
+				$(CONTRIB)/src/thrift/CMakeLists.txt.patch \
+				$(CONTRIB)/src/thrift/build-cmake-Config.cmake.in.patch \
+				$(CONTRIB)/src/thrift/build-cmake-ThriftMacros.cmake.patch \
+				$(CONTRIB)/src/thrift/lib-cpp-CMakeLists.txt.patch
 
 MODULE_CONFARGS_opentracing=	--add-dynamic-module=$(MODSRC_PREFIX)nginx-opentracing-$(NGINX_OPENTRACING_VERSION)/opentracing
 
@@ -24,23 +30,54 @@
 	cd $(CONTRIB) && make \
 		.sum-opentracing-cpp \
 		.sum-nginx-opentracing \
+		.sum-thrift \
 		.sum-jaeger-client-cpp
 	touch $@
 
 prerequisites-for-module-opentracing:
 
-MODULE_BUILD_DEPENDS_opentracing=cmake yaml-cpp-dev
+MODULE_BUILD_DEPENDS_opentracing=cmake yaml-cpp-dev boost-dev
 
 define MODULE_PREBUILD_opentracing
-	( cd ../opentracing-cpp-$(OPENTRACING_CPP_VERSION) \&\& \
+	( cd $$builddir/../opentracing-cpp-$(OPENTRACING_CPP_VERSION) \&\& \
 		mkdir .build \&\& \
 		cd .build \&\& \
 		cmake .. \&\& \
 		DESTDIR=`pwd`/.. make $$_make_opts install )
-	( cd ../jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION) \&\& \
+	( cd $$builddir/../thrift-$(THRIFT_VERSION) \&\& \
 		mkdir .build \&\& \
 		cd .build \&\& \
-		OpenTracing_DIR=$$builddir/../opentracing-cpp-$(OPENTRACING_CPP_VERSION)/.build cmake -DCMAKE_BUILD_TYPE=Release -DJAEGERTRACING_PLUGIN=ON -DHUNTER_CONFIGURATION_TYPES=Release -DBUILD_TESTING=OFF ../ -DOPENTRACING_INC=$$builddir/../opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \&\& \
+		cmake \
+			-DBUILD_TESTING=OFF \
+			-DBUILD_TUTORIALS=OFF \
+			-DBUILD_COMPILER=OFF \
+			-DBUILD_C_GLIB=OFF \
+			-DBUILD_HASKELL=OFF \
+			-DBUILD_JAVA=OFF \
+			-DBUILD_PYTHON=OFF \
+			-DWITH_QT4=OFF \
+			-DWITH_QT5=OFF \
+			-DWITH_SHARED_LIB=OFF \
+			-DWITH_PLUGIN=OFF \
+			-DWITH_LIBEVENT=OFF \
+			-DWITH_OPENSSL=OFF \
+			-DWITH_ZLIB=OFF \
+			-DBUILD_SHARED_LIBS=ON \
+			-DCMAKE_INSTALL_LIBDIR=lib \
+		.. \&\& \
+		DESTDIR=`pwd`/.. make $$_make_opts install )
+	( cd $$builddir/../jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION) \&\& \
+		mkdir .build \&\& \
+		cd .build \&\& \
+		OpenTracing_DIR=$$builddir/../opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib/cmake/OpenTracing \
+		thrift_DIR=$$builddir/../thrift-$(THRIFT_VERSION)/usr/local/lib/cmake/thrift \
+		cmake \
+			-DBUILD_TESTING=OFF \
+			-DJAEGERTRACING_PLUGIN=ON \
+			-DCMAKE_BUILD_TYPE=Release \
+			-DHUNTER_CONFIGURATION_TYPES=Release \
+			-DOPENTRACING_INC=$$builddir/../opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \
+		../ \&\& \
 		DESTDIR=`pwd`/.. make $$_make_opts )
 endef
 export MODULE_PREBUILD_opentracing
diff --git a/contrib/src/jaeger-client-cpp/CMakeLists.txt.patch b/contrib/src/jaeger-client-cpp/CMakeLists.txt.patch
index 9341f09..8eec3da 100644
--- a/contrib/src/jaeger-client-cpp/CMakeLists.txt.patch
+++ b/contrib/src/jaeger-client-cpp/CMakeLists.txt.patch
@@ -1,9 +1,32 @@
---- a/CMakeLists.txt	2020-06-08 15:24:23.000000000 +0000
-+++ b/CMakeLists.txt	2020-12-10 14:06:50.510344080 +0000
-@@ -69,18 +69,11 @@
+--- a/CMakeLists.txt	2021-03-19 11:09:28.820154009 +0000
++++ b/CMakeLists.txt	2021-03-19 11:12:02.684154009 +0000
+@@ -59,28 +59,26 @@
+   message(FATAL_ERROR "Must use gcc >= 4.9")

+ endif()

+ 

+-hunter_add_package(thrift)

+-find_package(thrift ${hunter_config} REQUIRED)

+-if(HUNTER_ENABLED)

+-  list(APPEND LIBS thrift::thrift_static)

+-else()

+-  list(APPEND LIBS ${THRIFT_LIBRARIES})

+-endif()

++#hunter_add_package(thrift)

++#find_package(thrift ${hunter_config} REQUIRED)

++#if(HUNTER_ENABLED)

++#  list(APPEND LIBS thrift::thrift_static)

++#else()

++#  list(APPEND LIBS ${THRIFT_LIBRARIES})

++#endif()

++#list(APPEND package_deps thrift)

++

++# use our own prebuilt version of thrift

++include_directories(${THRIFT_INC})

++find_package(thrift CONFIG REQUIRED)

++list(APPEND LIBS thrift::thrift_static)

  list(APPEND package_deps thrift)

  

- 

+-

 -hunter_add_package(opentracing-cpp)

 -# Not `${hunter_config}` because OpenTracing provides its own

 -# OpenTracingConfig.cmake file

@@ -23,7 +46,7 @@
  list(APPEND package_deps OpenTracing)

  

  hunter_add_package(nlohmann_json)

-@@ -97,16 +90,8 @@
+@@ -97,16 +95,8 @@
    "NOT JAEGERTRACING_BUILD_CROSSDOCK" ON)

  

  if(JAEGERTRACING_WITH_YAML_CPP)

diff --git a/contrib/src/jaeger-client-cpp/Makefile b/contrib/src/jaeger-client-cpp/Makefile
index ecf94b8..003373d 100644
--- a/contrib/src/jaeger-client-cpp/Makefile
+++ b/contrib/src/jaeger-client-cpp/Makefile
@@ -15,14 +15,22 @@
 	$(APPLY) $(SRC)/jaeger-client-cpp/CMakeLists.txt.patch
 	$(MOVE)
 
-DEPS_jaeger-client-cpp = opentracing-cpp $(DEPS_opentracing-cpp)
+DEPS_jaeger-client-cpp = opentracing-cpp $(DEPS_opentracing-cpp) thrift $(DEPS_thrift)
 
 # note the https://github.com/google/myanmar-tools/issues/42
 .jaeger-client-cpp: jaeger-client-cpp
 	cd $< && \
 		mkdir -p .build && \
 		cd .build && \
-		CXXFLAGS="-Wno-error=deprecated-copy" OpenTracing_DIR=$(TOPSRC)/opentracing-cpp/.build cmake -DCMAKE_BUILD_TYPE=Release -DJAEGERTRACING_PLUGIN=ON -DHUNTER_CONFIGURATION_TYPES=Release -DOPENTRACING_INC=$(TOPSRC)/local/usr/local/include ../ && \
+		OpenTracing_DIR=$(PREFIX)/usr/local/lib/cmake/OpenTracing \
+		thrift_DIR=$(PREFIX)/usr/local/lib/cmake/thrift \
+		cmake \
+			-DBUILD_TESTING=OFF \
+			-DJAEGERTRACING_PLUGIN=ON \
+			-DCMAKE_BUILD_TYPE=Release \
+			-DHUNTER_CONFIGURATION_TYPES=Release \
+			-DOPENTRACING_INC=$(TOPSRC)/local/usr/local/include \
+		../ && \
 		make $(_SMP_MFLAGS)
 	cd $< && install -s .build/libjaegertracing_plugin.so $(PREFIX)/
 	touch $@
diff --git a/contrib/src/jaeger-client-cpp/SHA512SUMS b/contrib/src/jaeger-client-cpp/SHA512SUMS
index 023f8c1..6778217 100644
--- a/contrib/src/jaeger-client-cpp/SHA512SUMS
+++ b/contrib/src/jaeger-client-cpp/SHA512SUMS
@@ -1 +1,2 @@
 e2cd621a51f0e4d25ff67ddbe86f17f6ef976e36b99c489aebdd330616e641fd0e428d2301a394eaa8920d35619f2d6172c436e8b828f44bdbe39e290e1849f0  jaeger-client-cpp-0.6.0.tar.gz
+ab66da778b639204e7848afec80cdaae0ed75010c4a009483ec5edde67929a4396f160b55163de142e80857cd9f518e678d23ccbe14aea4ed707be06a6d6550d  jaeger-client-cpp-0.7.0.tar.gz
diff --git a/contrib/src/jaeger-client-cpp/version b/contrib/src/jaeger-client-cpp/version
index 0d212b5..bda1267 100644
--- a/contrib/src/jaeger-client-cpp/version
+++ b/contrib/src/jaeger-client-cpp/version
@@ -1 +1 @@
-JAEGER_CLIENT_CPP_VERSION := 0.6.0
+JAEGER_CLIENT_CPP_VERSION := 0.7.0
diff --git a/contrib/src/nginx-opentracing/SHA512SUMS b/contrib/src/nginx-opentracing/SHA512SUMS
index 0971808..b60bac8 100644
--- a/contrib/src/nginx-opentracing/SHA512SUMS
+++ b/contrib/src/nginx-opentracing/SHA512SUMS
@@ -1 +1,2 @@
 1700484555892e62c1dae846cd6b736ed084cdac6ee1cfd4f903644c4119de227ec8682ff5b2590c9b53524ab4305de3267f419a68226f33f9b3ef8128028dbf  nginx-opentracing-0.10.0.tar.gz
+a1bcbacae3e6fc72e8998b07d008e33b900dbd2f14e1373160f60cb1dd7db7f6e135db2fc98704f4494e0e4d75490eda61380a43f4c80d8bb66380a934a3bfd2  nginx-opentracing-0.14.0.tar.gz
diff --git a/contrib/src/nginx-opentracing/version b/contrib/src/nginx-opentracing/version
index 9d09f3e..147708f 100644
--- a/contrib/src/nginx-opentracing/version
+++ b/contrib/src/nginx-opentracing/version
@@ -1 +1 @@
-NGINX_OPENTRACING_VERSION := 0.10.0
+NGINX_OPENTRACING_VERSION := 0.14.0
diff --git a/contrib/src/opentracing-cpp/Makefile b/contrib/src/opentracing-cpp/Makefile
index 536c4d8..7c64532 100644
--- a/contrib/src/opentracing-cpp/Makefile
+++ b/contrib/src/opentracing-cpp/Makefile
@@ -17,7 +17,7 @@
 
 .opentracing-cpp: opentracing-cpp
 	cd $< && \
-		mkdir .build && \
+		mkdir -p .build && \
 		cd .build && \
 		cmake ../ && \
 		DESTDIR=$(PREFIX) make $(_SMP_MFLAGS) install
diff --git a/contrib/src/thrift/CMakeLists.txt.patch b/contrib/src/thrift/CMakeLists.txt.patch
new file mode 100644
index 0000000..ad20acb
--- /dev/null
+++ b/contrib/src/thrift/CMakeLists.txt.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt	2021-03-19 12:11:27.096154009 +0000
++++ b/CMakeLists.txt	2021-03-19 12:11:36.216154009 +0000
+@@ -45,6 +45,8 @@
+ string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" thrift_VERSION_PATCH ${thrift_VERSION})
+ message(STATUS "Parsed Thrift version: ${thrift_VERSION} (${thrift_VERSION_MAJOR}.${thrift_VERSION_MINOR}.${thrift_VERSION_PATCH})")
+ 
++project(thrift VERSION ${thrift_VERSION})
++
+ # Some default settings
+ include(DefineCMakeDefaults)
+ 
diff --git a/contrib/src/thrift/Makefile b/contrib/src/thrift/Makefile
new file mode 100644
index 0000000..638df8a
--- /dev/null
+++ b/contrib/src/thrift/Makefile
@@ -0,0 +1,45 @@
+# thrift
+
+include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/version
+THRIFT_URL := $(GITHUB)/apache/thrift/archive/v$(THRIFT_VERSION).tar.gz
+
+PKGS += thrift
+
+$(TARBALLS)/thrift-$(THRIFT_VERSION).tar.gz:
+	$(call download_pkg,$(THRIFT_URL),thrift)
+
+.sum-thrift: thrift-$(THRIFT_VERSION).tar.gz
+
+# patches reflect changes made in hunter version of thrift
+thrift: thrift-$(THRIFT_VERSION).tar.gz .sum-thrift
+	$(UNPACK)
+	$(APPLY) $(SRC)/thrift/CMakeLists.txt.patch
+	$(APPLY) $(SRC)/thrift/lib-cpp-CMakeLists.txt.patch
+	$(APPLY) $(SRC)/thrift/build-cmake-ThriftMacros.cmake.patch
+	$(APPLY) $(SRC)/thrift/build-cmake-Config.cmake.in.patch
+	$(MOVE)
+
+.thrift: thrift
+	cd $< && \
+		mkdir -p .build && \
+		cd .build && \
+		cmake \
+			-DBUILD_TESTING=OFF \
+			-DBUILD_TUTORIALS=OFF \
+			-DBUILD_COMPILER=OFF \
+			-DBUILD_C_GLIB=OFF \
+			-DBUILD_HASKELL=OFF \
+			-DBUILD_JAVA=OFF \
+			-DBUILD_PYTHON=OFF \
+			-DWITH_QT4=OFF \
+			-DWITH_QT5=OFF \
+			-DWITH_SHARED_LIB=OFF \
+			-DWITH_PLUGIN=OFF \
+			-DWITH_LIBEVENT=OFF \
+			-DWITH_OPENSSL=OFF \
+			-DWITH_ZLIB=OFF \
+			-DBUILD_SHARED_LIBS=ON \
+			-DCMAKE_INSTALL_LIBDIR=lib \
+			../ && \
+		DESTDIR=$(PREFIX) make $(_SMP_MFLAGS) install
+	touch $@
diff --git a/contrib/src/thrift/SHA512SUMS b/contrib/src/thrift/SHA512SUMS
new file mode 100644
index 0000000..f32e701
--- /dev/null
+++ b/contrib/src/thrift/SHA512SUMS
@@ -0,0 +1 @@
+b4154bca6ba9562d2d0aa7835aabfccbe1f065cea8b254539659bf357cd0d2f1044037e78c4030fa625853b544c1e36ac6b3a02983bb2b355ce9f6eebcecf8f2  thrift-0.12.0.tar.gz
diff --git a/contrib/src/thrift/build-cmake-Config.cmake.in.patch b/contrib/src/thrift/build-cmake-Config.cmake.in.patch
new file mode 100644
index 0000000..002936a
--- /dev/null
+++ b/contrib/src/thrift/build-cmake-Config.cmake.in.patch
@@ -0,0 +1,17 @@
+--- /dev/null	2021-03-19 09:19:45.796000000 +0000
++++ b/build/cmake/Config.cmake.in	2021-03-19 12:18:16.520154009 +0000
+@@ -0,0 +1,14 @@
++@PACKAGE_INIT@
++
++set(package_deps @package_deps@)
++foreach(dep IN LISTS package_deps)
++    if(dep STREQUAL "OpenSSL" OR dep STREQUAL "Threads")
++        find_package(${dep} REQUIRED)
++    else()
++        find_package(${dep} CONFIG REQUIRED)
++    endif()
++endforeach()
++
++check_required_components("@PROJECT_NAME@")
++
++include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
diff --git a/contrib/src/thrift/build-cmake-ThriftMacros.cmake.patch b/contrib/src/thrift/build-cmake-ThriftMacros.cmake.patch
new file mode 100644
index 0000000..f3d4c31
--- /dev/null
+++ b/contrib/src/thrift/build-cmake-ThriftMacros.cmake.patch
@@ -0,0 +1,46 @@
+--- a/build/cmake/ThriftMacros.cmake	2018-12-19 01:24:34.000000000 +0000
++++ b/build/cmake/ThriftMacros.cmake	2021-03-19 13:12:11.508104155 +0000
+@@ -29,12 +29,7 @@
+         OUTPUT_NAME ${name}
+         VERSION ${thrift_VERSION}
+         SOVERSION ${thrift_VERSION} )
+-    #set_target_properties(${name} PROPERTIES PUBLIC_HEADER "${thriftcpp_HEADERS}")
+-    install(TARGETS ${name}
+-        RUNTIME DESTINATION "${BIN_INSTALL_DIR}"
+-        LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
+-        ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
+-        PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}")
++    list(APPEND thrift_lib_targets ${name})
+ endif()
+ 
+ if(WITH_STATIC_LIB)
+@@ -42,12 +37,9 @@
+     set_target_properties(${name}_static PROPERTIES
+         OUTPUT_NAME ${name}${STATIC_POSTFIX}
+         VERSION ${thrift_VERSION}
+-        SOVERSION ${thrift_VERSION} )
+-    install(TARGETS ${name}_static
+-        RUNTIME DESTINATION "${BIN_INSTALL_DIR}"
+-        LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
+-        ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
+-        PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}")
++        SOVERSION ${thrift_VERSION}
++        POSITION_INDEPENDENT_CODE ON)
++    list(APPEND thrift_lib_targets ${name}_static)
+ endif()
+ 
+ endmacro(ADD_LIBRARY_THRIFT)
+@@ -56,11 +48,11 @@
+ macro(TARGET_INCLUDE_DIRECTORIES_THRIFT name)
+ 
+ if(WITH_SHARED_LIB)
+-    target_include_directories(${name} ${ARGN})
++    target_include_directories(${name} PUBLIC ${ARGN})
+ endif()
+ 
+ if(WITH_STATIC_LIB)
+-    target_include_directories(${name}_static ${ARGN})
++    target_include_directories(${name}_static PUBLIC ${ARGN})
+ endif()
+ 
+ endmacro(TARGET_INCLUDE_DIRECTORIES_THRIFT)
diff --git a/contrib/src/thrift/lib-cpp-CMakeLists.txt.patch b/contrib/src/thrift/lib-cpp-CMakeLists.txt.patch
new file mode 100644
index 0000000..5c98ea0
--- /dev/null
+++ b/contrib/src/thrift/lib-cpp-CMakeLists.txt.patch
@@ -0,0 +1,89 @@
+--- a/lib/cpp/CMakeLists.txt	2021-03-19 12:05:26.400154009 +0000
++++ b/lib/cpp/CMakeLists.txt	2021-03-19 12:06:51.220154009 +0000
+@@ -214,6 +214,86 @@
+ install(DIRECTORY "${CMAKE_BINARY_DIR}/thrift" DESTINATION "${INCLUDE_INSTALL_DIR}"
+     FILES_MATCHING PATTERN "*.h")
+ 
++# Installation (https://github.com/forexample/package-example)
++
++# Introduce variables:
++# * CMAKE_INSTALL_LIBDIR
++# * CMAKE_INSTALL_BINDIR
++# * CMAKE_INSTALL_INCLUDEDIR
++include(GNUInstallDirs)
++
++# Layout. This works for all platforms:
++#   * <prefix>/lib*/cmake/<PROJECT-NAME>
++#   * <prefix>/lib*/
++#   * <prefix>/include/
++set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
++
++set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
++
++# Configuration
++set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
++set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
++set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
++set(namespace "${PROJECT_NAME}::")
++
++# Include module with fuction 'write_basic_package_version_file'
++include(CMakePackageConfigHelpers)
++
++# Configure '<PROJECT-NAME>ConfigVersion.cmake'
++# Use:
++#   * PROJECT_VERSION
++write_basic_package_version_file(
++    "${version_config}" COMPATIBILITY SameMajorVersion
++)
++
++# Configure '<PROJECT-NAME>Config.cmake'
++# Use variables:
++#   * TARGETS_EXPORT_NAME
++#   * PROJECT_NAME
++configure_package_config_file(
++    "${PROJECT_SOURCE_DIR}/build/cmake/Config.cmake.in"
++    "${project_config}"
++    INSTALL_DESTINATION "${config_install_dir}"
++)
++
++# Targets:
++#   * <prefix>/lib/libthrift.a
++#   * <prefix>/lib/libthrift.so
++#   * header location after install: <prefix>/include/thrift/Thrift.h
++#   * headers can be included by C++ code `#include <thrift/Thrift.h>`
++install(
++    TARGETS ${thrift_lib_targets}
++    EXPORT "${TARGETS_EXPORT_NAME}"
++    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
++    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
++    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
++    INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
++)
++
++# Headers:
++#   * src/thrift/Thrift.h -> <prefix>/include/thrift/Thrift.h
++install(
++    DIRECTORY "src/thrift"
++    DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
++    FILES_MATCHING PATTERN "*.h"
++)
++
++# Config
++#   * <prefix>/lib/cmake/thrift/thriftConfig.cmake
++#   * <prefix>/lib/cmake/thrift/thriftConfigVersion.cmake
++install(
++    FILES "${project_config}" "${version_config}"
++    DESTINATION "${config_install_dir}"
++)
++
++# Config
++#   * <prefix>/lib/cmake/thrift/thriftTargets.cmake
++install(
++    EXPORT "${TARGETS_EXPORT_NAME}"
++    NAMESPACE "${namespace}"
++    DESTINATION "${config_install_dir}"
++)
++
+ if(BUILD_TESTING)
+     add_subdirectory(test)
+ endif()
diff --git a/contrib/src/thrift/version b/contrib/src/thrift/version
new file mode 100644
index 0000000..0ca90df
--- /dev/null
+++ b/contrib/src/thrift/version
@@ -0,0 +1 @@
+THRIFT_VERSION := 0.12.0
diff --git a/debian/Makefile.module-opentracing b/debian/Makefile.module-opentracing
index a7d6709..2a2bf2e 100644
--- a/debian/Makefile.module-opentracing
+++ b/debian/Makefile.module-opentracing
@@ -4,6 +4,7 @@
 
 include $(CONTRIB)/src/opentracing-cpp/version
 include $(CONTRIB)/src/nginx-opentracing/version
+include $(CONTRIB)/src/thrift/version
 include $(CONTRIB)/src/jaeger-client-cpp/version
 
 MODULE_VERSION_opentracing=	$(NGINX_OPENTRACING_VERSION)
@@ -13,10 +14,15 @@
 
 MODULE_SOURCES_opentracing=	opentracing-cpp-$(OPENTRACING_CPP_VERSION).tar.gz \
 				nginx-opentracing-$(NGINX_OPENTRACING_VERSION).tar.gz \
+				thrift-$(THRIFT_VERSION).tar.gz \
 				jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION).tar.gz
 
 MODULE_PATCHES_opentracing=	$(CONTRIB)/src/opentracing-cpp/CMakeLists.txt.patch \
-				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch
+				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch \
+				$(CONTRIB)/src/thrift/CMakeLists.txt.patch \
+				$(CONTRIB)/src/thrift/build-cmake-Config.cmake.in.patch \
+				$(CONTRIB)/src/thrift/build-cmake-ThriftMacros.cmake.patch \
+				$(CONTRIB)/src/thrift/lib-cpp-CMakeLists.txt.patch
 
 MODULE_CONFARGS_opentracing=	--add-dynamic-module=$(MODSRC_PREFIX)nginx-opentracing-$(NGINX_OPENTRACING_VERSION)/opentracing
 
@@ -24,21 +30,54 @@
 	cd $(CONTRIB) && make \
 		.sum-opentracing-cpp \
 		.sum-nginx-opentracing \
+		.sum-thrift \
 		.sum-jaeger-client-cpp
 	touch $@
 
-MODULE_BUILD_DEPENDS_opentracing=,cmake,libyaml-cpp-dev
+MODULE_BUILD_DEPENDS_opentracing=,cmake,libyaml-cpp-dev,libboost-dev
 
 define MODULE_PREBUILD_opentracing
 	cd $$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION) \&\& \
 		mkdir .build \&\& \
 		cd .build \&\& \
 		cmake ../ \&\& \
-		DESTDIR=$$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION) $$(MAKE) -j$$(NUMJOBS) install
+		DESTDIR=$$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION) \
+		$$(MAKE) -j$$(NUMJOBS) install
+	cd $$(BUILDDIR_nginx)/extra/thrift-$(THRIFT_VERSION) \&\& \
+		mkdir .build \&\& \
+		cd .build \&\& \
+		cmake \
+			-DBUILD_TESTING=OFF \
+			-DBUILD_TUTORIALS=OFF \
+			-DBUILD_COMPILER=OFF \
+			-DBUILD_C_GLIB=OFF \
+			-DBUILD_HASKELL=OFF \
+			-DBUILD_JAVA=OFF \
+			-DBUILD_PYTHON=OFF \
+			-DWITH_QT4=OFF \
+			-DWITH_QT5=OFF \
+			-DWITH_SHARED_LIB=OFF \
+			-DWITH_PLUGIN=OFF \
+			-DWITH_LIBEVENT=OFF \
+			-DWITH_OPENSSL=OFF \
+			-DWITH_ZLIB=OFF \
+			-DBUILD_SHARED_LIBS=ON \
+			-DCMAKE_INSTALL_LIBDIR=lib \
+		../ \&\& \
+		DESTDIR=$$(BUILDDIR_nginx)/extra/thrift-$(THRIFT_VERSION) \
+		$$(MAKE) -j$$(NUMJOBS) install
 	cd $$(BUILDDIR_nginx)/extra/jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION) \&\& \
 		mkdir .build \&\& \
 		cd .build \&\& \
-		OpenTracing_DIR=$$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/.build cmake -DCMAKE_BUILD_TYPE=Release -DJAEGERTRACING_PLUGIN=ON -DHUNTER_CONFIGURATION_TYPES=Release -DBUILD_TESTING=OFF ../ -DOPENTRACING_INC=$$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \&\& \
+		OpenTracing_DIR=$$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib/cmake/OpenTracing \
+		thrift_DIR=$$(BUILDDIR_nginx)/extra/thrift-$(THRIFT_VERSION)/usr/local/lib/cmake/thrift \
+		cmake \
+			-DBUILD_TESTING=OFF \
+			-DJAEGERTRACING_PLUGIN=ON \
+			-DCMAKE_BUILD_TYPE=Release \
+			-DHUNTER_CONFIGURATION_TYPES=Release \
+			-DOPENTRACING_INC=$$(BUILDDIR_nginx)/extra/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \
+		../ \&\& \
 		$$(MAKE) -j$$(NUMJOBS)
 endef
 export MODULE_PREBUILD_opentracing
diff --git a/docs/nginx-module-opentracing.xml b/docs/nginx-module-opentracing.xml
index 5b06027..f4890e9 100644
--- a/docs/nginx-module-opentracing.xml
+++ b/docs/nginx-module-opentracing.xml
@@ -5,6 +5,18 @@
 <change_log title="nginx_module_opentracing">
 
 
+<changes apply="nginx-module-opentracing" ver="0.14.0" rev="1" basever="1.19.8"
+         date="2021-03-19" time="17:01:22 +0300"
+         packager="Andrei Belov &lt;defan@nginx.com&gt;">
+<change>
+<para>
+nginx-opentracing module updated to 0.14.0
+</para>
+</change>
+
+</changes>
+
+
 <changes apply="nginx-module-opentracing" ver="0.10.0" rev="1" basever="1.19.8"
          date="2021-03-09" time="18:52:01 +0300"
          packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
diff --git a/rpm/SPECS/Makefile.module-opentracing b/rpm/SPECS/Makefile.module-opentracing
index 679ae7c..0c88f02 100644
--- a/rpm/SPECS/Makefile.module-opentracing
+++ b/rpm/SPECS/Makefile.module-opentracing
@@ -4,6 +4,7 @@
 
 include $(CONTRIB)/src/opentracing-cpp/version
 include $(CONTRIB)/src/nginx-opentracing/version
+include $(CONTRIB)/src/thrift/version
 include $(CONTRIB)/src/jaeger-client-cpp/version
 
 MODULE_VERSION_opentracing=	$(NGINX_OPENTRACING_VERSION)
@@ -13,10 +14,15 @@
 
 MODULE_SOURCES_opentracing=	opentracing-cpp-$(OPENTRACING_CPP_VERSION).tar.gz \
 				nginx-opentracing-$(NGINX_OPENTRACING_VERSION).tar.gz \
+				thrift-$(THRIFT_VERSION).tar.gz \
 				jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION).tar.gz
 
 MODULE_PATCHES_opentracing=	$(CONTRIB)/src/opentracing-cpp/CMakeLists.txt.patch \
-				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch
+				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch \
+				$(CONTRIB)/src/thrift/CMakeLists.txt.patch \
+				$(CONTRIB)/src/thrift/build-cmake-Config.cmake.in.patch \
+				$(CONTRIB)/src/thrift/build-cmake-ThriftMacros.cmake.patch \
+				$(CONTRIB)/src/thrift/lib-cpp-CMakeLists.txt.patch
 
 MODULE_CONFARGS_opentracing=	--add-dynamic-module=nginx-opentracing-$(NGINX_OPENTRACING_VERSION)/opentracing
 
@@ -24,6 +30,7 @@
 	cd $(CONTRIB) && make \
 		.sum-opentracing-cpp \
 		.sum-nginx-opentracing \
+		.sum-thrift \
 		.sum-jaeger-client-cpp
 	touch $@
 
@@ -46,6 +53,7 @@
 BuildRequires: libstdc++-static
 %endif
 BuildRequires: yaml-cpp-devel
+BuildRequires: boost-devel
 endef
 export MODULE_DEFINITIONS_opentracing
 
@@ -60,10 +68,40 @@
 cd .build \&\& \
 %{_cmake_cmd} ../ \&\& \
 DESTDIR=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION) make %{?_smp_mflags} install || exit 1
+cd %{bdir}/thrift-$(THRIFT_VERSION) \&\& \
+mkdir .build \&\& \
+cd .build \&\& \
+%{_cmake_cmd} \
+	-DBUILD_TESTING=OFF \
+	-DBUILD_TUTORIALS=OFF \
+	-DBUILD_COMPILER=OFF \
+	-DBUILD_C_GLIB=OFF \
+	-DBUILD_HASKELL=OFF \
+	-DBUILD_JAVA=OFF \
+	-DBUILD_PYTHON=OFF \
+	-DWITH_QT4=OFF \
+	-DWITH_QT5=OFF \
+	-DWITH_SHARED_LIB=OFF \
+	-DWITH_PLUGIN=OFF \
+	-DWITH_LIBEVENT=OFF \
+	-DWITH_OPENSSL=OFF \
+	-DWITH_ZLIB=OFF \
+	-DBUILD_SHARED_LIBS=ON \
+	-DCMAKE_INSTALL_LIBDIR=lib \
+../ \&\& \
+DESTDIR=%{bdir}/thrift-$(THRIFT_VERSION) make %{?_smp_mflags} install || exit 1
 cd %{bdir}/jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION) \&\& \
 mkdir .build \&\& \
 cd .build \&\& \
-OpenTracing_DIR=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/.build %{_cmake_cmd} -DCMAKE_BUILD_TYPE=Release -DJAEGERTRACING_PLUGIN=ON -DHUNTER_CONFIGURATION_TYPES=Release -DBUILD_TESTING=OFF ../ -DOPENTRACING_INC=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \&\& \
+OpenTracing_DIR=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib/cmake/OpenTracing \
+thrift_DIR=%{bdir}/thrift-$(THRIFT_VERSION)/usr/local/lib/cmake/thrift \
+%{_cmake_cmd} \
+	-DBUILD_TESTING=OFF \
+	-DJAEGERTRACING_PLUGIN=ON \
+	-DCMAKE_BUILD_TYPE=Release \
+	-DHUNTER_CONFIGURATION_TYPES=Release \
+	-DOPENTRACING_INC=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \
+../ \&\& \
 make %{?_smp_mflags} || exit 1
 endef
 export MODULE_PREBUILD_opentracing