From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp63.i.mail.ru (smtp63.i.mail.ru [217.69.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 378114696C3 for ; Tue, 21 Jan 2020 14:54:44 +0300 (MSK) From: Serge Petrenko Date: Tue, 21 Jan 2020 14:54:32 +0300 Message-Id: <60d67cf38872e012f83410591dfa39140fc679e0.1579605136.git.sergepetrenko@tarantool.org> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v2 2/2] build: add bundled curl and c-ares to version output List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: alexander.turenko@tarantool.org Cc: tarantool-patches@dev.tarantool.org Since we may use bundled lubcurl and c-ares, it can be useful to know the exact curl and c-ares versions tarantool was built with. Follow-up #4591 --- cmake/BuildAres.cmake | 10 ++++++++++ cmake/BuildLibCURL.cmake | 10 ++++++++++ src/lua/init.c | 14 ++++++++++++++ src/main.cc | 6 ++++++ src/trivia/config.h.cmake | 4 ++++ test/box-py/args.result | 8 ++++++++ test/box-py/args.test.py | 5 ++++- 7 files changed, 56 insertions(+), 1 deletion(-) diff --git a/cmake/BuildAres.cmake b/cmake/BuildAres.cmake index 0f9f174ce..7be6f5b00 100644 --- a/cmake/BuildAres.cmake +++ b/cmake/BuildAres.cmake @@ -4,6 +4,16 @@ macro(ares_build) set(ARES_BINARY_DIR ${PROJECT_BINARY_DIR}/build/ares/work) set(ARES_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/ares/dest) + # Get bundled ares version for `tarantool -v` output. + if (EXISTS "${ARES_SOURCE_DIR}/.git" AND GIT) + execute_process (COMMAND ${GIT} describe HEAD + OUTPUT_VARIABLE BUNDLED_ARES_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${ARES_SOURCE_DIR}) + string(REPLACE cares- "" BUNDLED_ARES_VERSION ${BUNDLED_ARES_VERSION}) + string(REPLACE _ . BUNDLED_ARES_VERSION ${BUNDLED_ARES_VERSION}) + endif() + # See BuildLibCURL.cmake for details. set(ARES_CFLAGS "") if (TARGET_OS_DARWIN AND NOT "${CMAKE_OSX_SYSROOT}" STREQUAL "") diff --git a/cmake/BuildLibCURL.cmake b/cmake/BuildLibCURL.cmake index 756297878..aff34cbf0 100644 --- a/cmake/BuildLibCURL.cmake +++ b/cmake/BuildLibCURL.cmake @@ -4,6 +4,16 @@ macro(curl_build) set(LIBCURL_BINARY_DIR ${PROJECT_BINARY_DIR}/build/curl/work) set(LIBCURL_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/curl/dest) + # Get bundled curl version for `tarantool -v` output. + if (EXISTS "${LIBCURL_SOURCE_DIR}/.git" AND GIT) + execute_process (COMMAND ${GIT} describe HEAD + OUTPUT_VARIABLE BUNDLED_CURL_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${LIBCURL_SOURCE_DIR}) + string(REPLACE curl- "" BUNDLED_CURL_VERSION ${BUNDLED_CURL_VERSION}) + string(REPLACE _ . BUNDLED_CURL_VERSION ${BUNDLED_CURL_VERSION}) + endif() + if (BUILD_STATIC) set(LIBZ_LIB_NAME libz.a) else() diff --git a/src/lua/init.c b/src/lua/init.c index 097dd8495..437175260 100644 --- a/src/lua/init.c +++ b/src/lua/init.c @@ -427,6 +427,20 @@ luaopen_tarantool(lua_State *L) lua_pushstring(L, TARANTOOL_C_FLAGS); lua_settable(L, -3); +#ifdef BUNDLED_CURL_VERSION + /* build.curl */ + lua_pushstring(L, "curl"); + lua_pushstring(L, BUNDLED_CURL_VERSION); + lua_settable(L, -3); +#endif + +#ifdef BUNDLED_ARES_VERSION + /* build.c_ares */ + lua_pushstring(L, "c_ares"); + lua_pushstring(L, BUNDLED_ARES_VERSION); + lua_settable(L, -3); +#endif + lua_settable(L, -3); /* box.info.build */ return 1; } diff --git a/src/main.cc b/src/main.cc index e674d85b1..098b97013 100644 --- a/src/main.cc +++ b/src/main.cc @@ -675,6 +675,12 @@ print_version(void) printf("%s %s\n", tarantool_package(), tarantool_version()); printf("Target: %s\n", BUILD_INFO); printf("Build options: %s\n", BUILD_OPTIONS); +#ifdef BUNDLED_CURL_VERSION + printf("Bundled libCURL version: %s\n", BUNDLED_CURL_VERSION); +#endif +#ifdef BUNDLED_ARES_VERSION + printf("Bundled c-ares version: %s\n", BUNDLED_ARES_VERSION); +#endif printf("Compiler: %s\n", COMPILER_INFO); printf("C_FLAGS:%s\n", TARANTOOL_C_FLAGS); printf("CXX_FLAGS:%s\n", TARANTOOL_CXX_FLAGS); diff --git a/src/trivia/config.h.cmake b/src/trivia/config.h.cmake index 226f83128..c541beb31 100644 --- a/src/trivia/config.h.cmake +++ b/src/trivia/config.h.cmake @@ -42,6 +42,10 @@ #define TARANTOOL_LIBEXT "so" #endif +/** Is set to the version of builtin libcurl used. */ +#cmakedefine BUNDLED_CURL_VERSION "${BUNDLED_CURL_VERSION}" +/** Is set to the version of builtin c-ares used. */ +#cmakedefine BUNDLED_ARES_VERSION "${BUNDLED_ARES_VERSION}" /** * Defined if cpuid() instruction is available. */ diff --git a/test/box-py/args.result b/test/box-py/args.result index 54629edea..cb1131eb3 100644 --- a/test/box-py/args.result +++ b/test/box-py/args.result @@ -47,6 +47,8 @@ tarantool --version Tarantool 2.minor.patch-- Target: platform Build options: flags +Curl 7.66.patch +c-ares 1.15.patch-- Compiler: cc C_FLAGS: flags CXX_FLAGS: flags @@ -55,6 +57,8 @@ tarantool -v Tarantool 2.minor.patch-- Target: platform Build options: flags +Curl 7.66.patch +c-ares 1.15.patch-- Compiler: cc C_FLAGS: flags CXX_FLAGS: flags @@ -63,6 +67,8 @@ tarantool -V Tarantool 2.minor.patch-- Target: platform Build options: flags +Curl 7.66.patch +c-ares 1.15.patch-- Compiler: cc C_FLAGS: flags CXX_FLAGS: flags @@ -114,6 +120,8 @@ tarantool -V ${SOURCEDIR}/test/box-py/args.lua 1 2 3 Tarantool 2.minor.patch-- Target: platform Build options: flags +Curl 7.66.patch +c-ares 1.15.patch-- Compiler: cc C_FLAGS: flags CXX_FLAGS: flags diff --git a/test/box-py/args.test.py b/test/box-py/args.test.py index f89c5bb09..59b0f4b4c 100644 --- a/test/box-py/args.test.py +++ b/test/box-py/args.test.py @@ -16,7 +16,10 @@ sys.stdout.push_filter("unrecognized option.*", "unrecognized option") server.test_option("-Z") server.test_option("--no-such-option") server.test_option("--no-such-option --version") -sys.stdout.push_filter(".* (\d+)\.\d+\.\d(-\d+-\w+)?", "Tarantool \\1.minor.patch--") +sys.stdout.push_filter("Tarantool (\d+)\.\d+\.\d(-\d+-\w+)?", "Tarantool \\1.minor.patch--") +sys.stdout.push_filter("Bundled libCURL version: (\d+).(\d+)\.\d+", "Curl \\1.\\2.patch") +sys.stdout.push_filter("Bundled c-ares version: (\d+)\.(\d+)\.\d(-\d+-\w+)?", + "c-ares \\1.\\2.patch--") sys.stdout.push_filter("Target: .*", "Target: platform ") sys.stdout.push_filter(".*Disable shared arena since.*\n", "") sys.stdout.push_filter("Build options: .*", "Build options: flags") -- 2.21.0 (Apple Git-122)