From 2ab5d729cc414fecfc7150e63474b1f2913327f9 Mon Sep 17 00:00:00 2001 From: John Freeman Date: Thu, 19 Feb 2026 16:07:31 +0900 Subject: [PATCH] Update dependencies (#4595) Use the most recent versions in ConanCenter. * Due to a bug in Clang 16, you may get a compile error: "call to 'async_teardown' is ambiguous" * A compiler flag workaround is documented in `BUILD.md`. * At this time, building this with gcc 13 may require editing some files in `.conan/data` * A patch to support gcc13 may be added in a later PR. --------- Co-authored-by: Scott Schurr --- BUILD.md | 18 ++++++++++++++++-- conanfile.py | 11 ++++++----- src/ripple/basics/RangeSet.h | 1 + src/ripple/consensus/Consensus.h | 2 ++ src/ripple/json/impl/json_reader.cpp | 2 -- src/ripple/overlay/impl/Handshake.cpp | 2 +- src/ripple/rpc/impl/ServerHandler.cpp | 2 +- src/test/jtx/TrustedPublisherServer.h | 2 +- 8 files changed, 28 insertions(+), 12 deletions(-) diff --git a/BUILD.md b/BUILD.md index 3f0aafcd1..721dda053 100644 --- a/BUILD.md +++ b/BUILD.md @@ -203,7 +203,7 @@ can't build earlier Boost versions. `$OUTPUT_FOLDER/build/generators/conan_toolchain.cmake`. Single-config generators: - + ``` cmake -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release .. ``` @@ -234,7 +234,7 @@ can't build earlier Boost versions. ``` Multi-config generators: - + ``` cmake --build . --config Release cmake --build . --config Debug @@ -306,6 +306,18 @@ tools.build:cxxflags=["-Wno-missing-template-arg-list-after-template-kw"] ``` +### call to 'async_teardown' is ambiguous + +If you are compiling with an early version of Clang 16, then you might hit +a [regression][6] when compiling C++20 that manifests as an [error in a Boost +header][7]. You can workaround it by adding this preprocessor definition: + +``` +conan profile update 'env.CXXFLAGS="-DBOOST_ASIO_DISABLE_CONCEPTS"' default +conan profile update 'conf.tools.build:cxxflags+=["-DBOOST_ASIO_DISABLE_CONCEPTS"]' default +``` + + ### recompile with -fPIC If you get a linker error suggesting that you recompile Boost with @@ -457,6 +469,8 @@ but it is more convenient to put them in a [profile][profile]. [1]: https://github.com/conan-io/conan-center-index/issues/13168 [5]: https://en.wikipedia.org/wiki/Unity_build +[6]: https://github.com/boostorg/beast/issues/2648 +[7]: https://github.com/boostorg/beast/issues/2661 [build_type]: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html [runtime]: https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html [toolchain]: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html diff --git a/conanfile.py b/conanfile.py index 4c2828e20..2f06c62f6 100644 --- a/conanfile.py +++ b/conanfile.py @@ -27,9 +27,9 @@ class Xrpl(ConanFile): requires = [ 'date/3.0.3', - 'libarchive/3.6.0', - 'lz4/1.9.4', 'grpc/1.50.1', + 'libarchive/3.6.2', + 'lz4/1.9.4', 'nudb/2.0.8', 'openssl/3.6.0', 'protobuf/3.21.12', @@ -52,6 +52,7 @@ class Xrpl(ConanFile): 'tool_requires_b2': False, 'cassandra-cpp-driver/*:shared': False, + 'cassandra-cpp-driver/*:use_atomic': None, 'date/*:header_only': False, 'grpc/*:shared': False, 'grpc/*:secure': True, @@ -119,12 +120,12 @@ class Xrpl(ConanFile): if self.options.with_wasmedge: self.requires('wasmedge/0.11.2@xahaud/stable') if self.options.jemalloc: - self.requires('jemalloc/5.2.1') + self.requires('jemalloc/5.3.0') if self.options.reporting: self.requires('cassandra-cpp-driver/2.15.3') - self.requires('libpq/13.6') + self.requires('libpq/14.7') if self.options.rocksdb: - self.requires('rocksdb/6.27.3') + self.requires('rocksdb/6.29.5') exports_sources = ( 'CMakeLists.txt', 'Builds/*', 'bin/getRippledInfo', 'src/*', 'cfg/*' diff --git a/src/ripple/basics/RangeSet.h b/src/ripple/basics/RangeSet.h index e003a229a..3a9e470dd 100644 --- a/src/ripple/basics/RangeSet.h +++ b/src/ripple/basics/RangeSet.h @@ -28,6 +28,7 @@ #include #include +#include namespace ripple { diff --git a/src/ripple/consensus/Consensus.h b/src/ripple/consensus/Consensus.h index df5ec01ce..8970024c3 100644 --- a/src/ripple/consensus/Consensus.h +++ b/src/ripple/consensus/Consensus.h @@ -30,6 +30,8 @@ #include #include #include + +#include #include #include #include diff --git a/src/ripple/json/impl/json_reader.cpp b/src/ripple/json/impl/json_reader.cpp index dd2f9a694..299accd84 100644 --- a/src/ripple/json/impl/json_reader.cpp +++ b/src/ripple/json/impl/json_reader.cpp @@ -30,8 +30,6 @@ namespace Json { // Implementation of class Reader // //////////////////////////////// -constexpr unsigned Reader::nest_limit; - static std::string codePointToUTF8(unsigned int cp) { diff --git a/src/ripple/overlay/impl/Handshake.cpp b/src/ripple/overlay/impl/Handshake.cpp index 73d40e6c5..81e3972ae 100644 --- a/src/ripple/overlay/impl/Handshake.cpp +++ b/src/ripple/overlay/impl/Handshake.cpp @@ -46,7 +46,7 @@ getFeatureValue( return {}; boost::smatch match; boost::regex rx(feature + "=([^;\\s]+)"); - auto const value = std::string(header->value()); + std::string const value = std::string(header->value()); if (boost::regex_search(value, match, rx)) return {match[1]}; return {}; diff --git a/src/ripple/rpc/impl/ServerHandler.cpp b/src/ripple/rpc/impl/ServerHandler.cpp index d5dc4832f..bb49c91ce 100644 --- a/src/ripple/rpc/impl/ServerHandler.cpp +++ b/src/ripple/rpc/impl/ServerHandler.cpp @@ -248,7 +248,7 @@ build_map(boost::beast::http::fields const& h) std::map c; for (auto const& e : h) { - auto key(std::string(e.name_string())); + std::string key(std::string(e.name_string())); std::transform(key.begin(), key.end(), key.begin(), [](auto kc) { return std::tolower(static_cast(kc)); }); diff --git a/src/test/jtx/TrustedPublisherServer.h b/src/test/jtx/TrustedPublisherServer.h index 64be52185..ff285d83e 100644 --- a/src/test/jtx/TrustedPublisherServer.h +++ b/src/test/jtx/TrustedPublisherServer.h @@ -575,7 +575,7 @@ private: if (ec) break; - auto path = req.target(); //.to_string(); + std::string path = req.target(); //.to_string(); res.insert("Server", "TrustedPublisherServer"); res.version(req.version()); res.keep_alive(req.keep_alive());