From a695aa16c9aa4dd299163047a9ecad15d3aec92e Mon Sep 17 00:00:00 2001 From: Sergey Bronnikov <sergeyb@tarantool.org> Date: Fri, 6 May 2022 11:23:13 +0300 Subject: [PATCH] third_party: update libcurl from 7.80.0 to 7.83.0 Changelog: https://curl.se/changes.html#7_83_0 Curl replaced prefix CURL_ with CMAKE_ in private identifiers [1] since the 'CMAKE_' prefix is reserved for CMake's own private use, see [2]. Patch adds a number of options defined in curl build infrastructure with their default values used in 7.83.0. 1. https://github.com/curl/curl/commit/9108da2c26d18e927b91e33d3729d9cf0f3eb8fa 2. https://cmake.org/cmake/help/latest/manual/cmake-variables.7.html NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump Follows up #6029 (cherry picked from commit 1810ddfdeff6e553aef883b3ecb53d79c563b3ec) --- .../unreleased/bump-libcurl-to-7.83.0.md | 3 + cmake/BuildLibCURL.cmake | 55 ++++++++++++++++--- third_party/curl | 2 +- 3 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 changelogs/unreleased/bump-libcurl-to-7.83.0.md diff --git a/changelogs/unreleased/bump-libcurl-to-7.83.0.md b/changelogs/unreleased/bump-libcurl-to-7.83.0.md new file mode 100644 index 0000000000..8c57348cf6 --- /dev/null +++ b/changelogs/unreleased/bump-libcurl-to-7.83.0.md @@ -0,0 +1,3 @@ +## feature/build + +* Updated libcurl to version 7.83.0 (gh-6029). diff --git a/cmake/BuildLibCURL.cmake b/cmake/BuildLibCURL.cmake index 0eaf24fe58..87033fe517 100644 --- a/cmake/BuildLibCURL.cmake +++ b/cmake/BuildLibCURL.cmake @@ -42,7 +42,7 @@ macro(curl_build) # Setup use of openssl, use the same OpenSSL library # for libcurl as is used for tarantool itself. get_filename_component(FOUND_OPENSSL_ROOT_DIR ${OPENSSL_INCLUDE_DIR} DIRECTORY) - list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_OPENSSL=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_OPENSSL=ON") list(APPEND LIBCURL_CMAKE_FLAGS "-DOPENSSL_ROOT_DIR=${FOUND_OPENSSL_ROOT_DIR}") list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_MODULE_PATH=${PROJECT_SOURCE_DIR}/cmake") @@ -55,6 +55,10 @@ macro(curl_build) list(APPEND LIBCURL_FIND_ROOT_PATH ${ARES_INSTALL_DIR}) else() set(ENABLE_ARES "OFF") + # libcurl build system enables threaded resolver when c-ares is + # disabled, we duplicate this logic because we cannot rely on upstream + # defaults, they may vary across time. + list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_THREADED_RESOLVER=ON") endif() list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_ARES=${ENABLE_ARES}") @@ -70,13 +74,14 @@ macro(curl_build) string(REPLACE ";" "$<SEMICOLON>" LIBCURL_FIND_ROOT_PATH_STR "${LIBCURL_FIND_ROOT_PATH}") list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_FIND_ROOT_PATH=${LIBCURL_FIND_ROOT_PATH_STR}") - # On cmake CMAKE_USE_LIBSSH2 flag is enabled by default, we need to switch it + # On cmake CURL_USE_LIBSSH2 flag is enabled by default, we need to switch it # off to avoid of issues, like: # ld: libssh2.c:(.text+0x4d8): undefined reference to `libssh2_*... - list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_LIBSSH2=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_LIBSSH2=OFF") # Switch off the group of protocols with special flag HTTP_ONLY: - # ftp, file, ldap, ldaps, rtsp, dict, telnet, tftp, pop3, imap, smtp. + # ftp, file, ldap, ldaps, rtsp, dict, telnet, tftp, pop3, imap, smtp, + # gopher, mqtt, smb. list(APPEND LIBCURL_CMAKE_FLAGS "-DHTTP_ONLY=OFF") # Additionaly disable some more protocols. @@ -115,13 +120,17 @@ macro(curl_build) list(APPEND LIBCURL_CMAKE_FLAGS "-DBUILD_CURL_EXE=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_BROTLI=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_GNUTLS=OFF") - list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_MBEDTLS=OFF") - list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_WOLFSSL=OFF") - list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_NSS=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_MBEDTLS=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_WOLFSSL=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_NSS=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_BUNDLE=none") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_BUNDLE_SET=ON") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_PATH=none") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_PATH_SET=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_FALLBACK=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_LIBRTMP=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DHAVE_LIBIDN2=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_LIBIDN2=ON") list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_NGTCP2=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_NGHTTP3=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_QUICHE=OFF") @@ -141,7 +150,39 @@ macro(curl_build) list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_TFTP=ON") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_POP3=ON") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_IMAP=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_MQTT=ON") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_SMTP=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_ALTSVC=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_DOH=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_GETOPTIONS=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_HSTS=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_HTTP_AUTH=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_LIBCURL_OPTION=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_MIME=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_NETRC=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_NTLM=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_PARSEDATE=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_PROGRESS_METER=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_PROXY=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_SHUFFLE_DNS=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_SOCKETPAIR=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_DISABLE_VERBOSE_STRINGS=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_ENABLE_EXPORT_TARGET=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_ENABLE_SSL=ON") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_LTO=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_BEARSSL=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_GSSAPI=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_LIBSSH=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_USE_OPENLDAP=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_WERROR=OFF") + # CURL_ZSTD adds zstd encoding/decoding support. Tuning libcurl's build to + # catch the symbols may require extra work. + list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_ZSTD=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DLIBCURL_OUTPUT_NAME=libcurl") + list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_CURLDEBUG=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_DEBUG=OFF") + list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_MSH3=OFF") # We need PIC at least to enable build for Fedora on # ARM64 CPU. Without it configuration with Fedora diff --git a/third_party/curl b/third_party/curl index 9e560d11aa..1669b17d3a 160000 --- a/third_party/curl +++ b/third_party/curl @@ -1 +1 @@ -Subproject commit 9e560d11aad028de74addc0d1edfefa5667884f4 +Subproject commit 1669b17d3a1a1fd824308544ca0ec02a2a4f50ea -- GitLab