From cc32defa18a85cc304fed36796d6b22f17e92f23 Mon Sep 17 00:00:00 2001 From: Bart Date: Fri, 18 Jul 2025 12:55:15 -0400 Subject: [PATCH] refactor: Update date, libarchive, nudb, openssl, sqlite3, xxhash packages (#5567) This PR updates several dependencies to their latest versions. Not all dependencies have been updated, as some need to be patched and some require additional code changes due to backward incompatibilities introduced by the version bump. --- BUILD.md | 13 ---- conanfile.py | 12 ++-- external/nudb/conandata.yml | 10 --- external/nudb/conanfile.py | 72 ------------------- ...-0001-add-include-stdexcept-for-msvc.patch | 24 ------- 5 files changed, 6 insertions(+), 125 deletions(-) delete mode 100644 external/nudb/conandata.yml delete mode 100644 external/nudb/conanfile.py delete mode 100644 external/nudb/patches/2.0.8-0001-add-include-stdexcept-for-msvc.patch diff --git a/BUILD.md b/BUILD.md index 6377dc727..62deedca4 100644 --- a/BUILD.md +++ b/BUILD.md @@ -186,8 +186,6 @@ Export our [Conan recipe for RocksDB](./external/rocksdb). It does not override paths to dependencies when building with Visual Studio. ``` - # Conan 1.x - conan export external/rocksdb rocksdb/6.29.5@ # Conan 2.x conan export --version 6.29.5 external/rocksdb ``` @@ -205,17 +203,6 @@ It patches their CMake to correctly import its dependencies. conan export external/wasmedge --version 0.11.2 --user xahaud --channel stable ``` -Export our [Conan recipe for NuDB](./external/nudb). -It fixes some source files to add missing `#include`s. - - - ``` - # Conan 1.x - conan export external/nudb nudb/2.0.8@ - # Conan 2.x - conan export --version 2.0.8 external/nudb - ``` - ### Build and Test 1. Create a build directory and move into it. diff --git a/conanfile.py b/conanfile.py index b4fb37700..dc5024700 100644 --- a/conanfile.py +++ b/conanfile.py @@ -27,9 +27,9 @@ class Xrpl(ConanFile): requires = [ 'grpc/1.50.1', - 'libarchive/3.7.6', + 'libarchive/3.8.1', 'magic_enum/0.9.5', - 'nudb/2.0.8', + 'nudb/2.0.9', 'openssl/3.6.0', 'soci/4.0.3@xahaud/stable', 'zlib/1.3.1', @@ -117,12 +117,12 @@ class Xrpl(ConanFile): # Conan 2 requires transitive headers to be specified transitive_headers_opt = {'transitive_headers': True} if conan_version.split('.')[0] == '2' else {} # Force sqlite3 version to avoid conflicts with soci - self.requires('sqlite3/3.47.0', override=True) + self.requires('sqlite3/3.49.1', override=True) # Force our custom snappy build to avoid Conan CMakeDeps stdc++ heuristic bug self.requires('snappy/1.1.10@xahaud/stable', override=True) # Force boost version for all dependencies to avoid conflicts self.requires('boost/1.86.0', force=True, **transitive_headers_opt) - self.requires('date/3.0.3', **transitive_headers_opt) + self.requires('date/3.0.4', **transitive_headers_opt) self.requires('lz4/1.10.0', force=True) if self.options.with_wasmedge: @@ -130,8 +130,8 @@ class Xrpl(ConanFile): if self.options.jemalloc: self.requires('jemalloc/5.3.0', **transitive_headers_opt) if self.options.rocksdb: - self.requires('rocksdb/9.7.3', **transitive_headers_opt) - self.requires('xxhash/0.8.2', **transitive_headers_opt) + self.requires('rocksdb/9.7.3') + self.requires('xxhash/0.8.3', **transitive_headers_opt) exports_sources = ( 'CMakeLists.txt', diff --git a/external/nudb/conandata.yml b/external/nudb/conandata.yml deleted file mode 100644 index 721129f88..000000000 --- a/external/nudb/conandata.yml +++ /dev/null @@ -1,10 +0,0 @@ -sources: - "2.0.8": - url: "https://github.com/CPPAlliance/NuDB/archive/2.0.8.tar.gz" - sha256: "9b71903d8ba111cd893ab064b9a8b6ac4124ed8bd6b4f67250205bc43c7f13a8" -patches: - "2.0.8": - - patch_file: "patches/2.0.8-0001-add-include-stdexcept-for-msvc.patch" - patch_description: "Fix build for MSVC by including stdexcept" - patch_type: "portability" - patch_source: "https://github.com/cppalliance/NuDB/pull/100/files" diff --git a/external/nudb/conanfile.py b/external/nudb/conanfile.py deleted file mode 100644 index a046e2ba8..000000000 --- a/external/nudb/conanfile.py +++ /dev/null @@ -1,72 +0,0 @@ -import os - -from conan import ConanFile -from conan.tools.build import check_min_cppstd -from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get -from conan.tools.layout import basic_layout - -required_conan_version = ">=1.52.0" - - -class NudbConan(ConanFile): - name = "nudb" - description = "A fast key/value insert-only database for SSD drives in C++11" - license = "BSL-1.0" - url = "https://github.com/conan-io/conan-center-index" - homepage = "https://github.com/CPPAlliance/NuDB" - topics = ("header-only", "KVS", "insert-only") - - package_type = "header-library" - settings = "os", "arch", "compiler", "build_type" - no_copy_source = True - - @property - def _min_cppstd(self): - return 11 - - def export_sources(self): - export_conandata_patches(self) - - def layout(self): - basic_layout(self, src_folder="src") - - def requirements(self): - self.requires("boost/1.83.0") - - def package_id(self): - self.info.clear() - - def validate(self): - if self.settings.compiler.cppstd: - check_min_cppstd(self, self._min_cppstd) - - def source(self): - get(self, **self.conan_data["sources"][self.version], strip_root=True) - - def build(self): - apply_conandata_patches(self) - - def package(self): - copy(self, "LICENSE*", - dst=os.path.join(self.package_folder, "licenses"), - src=self.source_folder) - copy(self, "*", - dst=os.path.join(self.package_folder, "include"), - src=os.path.join(self.source_folder, "include")) - - def package_info(self): - self.cpp_info.bindirs = [] - self.cpp_info.libdirs = [] - - self.cpp_info.set_property("cmake_target_name", "NuDB") - self.cpp_info.set_property("cmake_target_aliases", ["NuDB::nudb"]) - self.cpp_info.set_property("cmake_find_mode", "both") - - self.cpp_info.components["core"].set_property("cmake_target_name", "nudb") - self.cpp_info.components["core"].names["cmake_find_package"] = "nudb" - self.cpp_info.components["core"].names["cmake_find_package_multi"] = "nudb" - self.cpp_info.components["core"].requires = ["boost::thread", "boost::system"] - - # TODO: to remove in conan v2 once cmake_find_package_* generators removed - self.cpp_info.names["cmake_find_package"] = "NuDB" - self.cpp_info.names["cmake_find_package_multi"] = "NuDB" diff --git a/external/nudb/patches/2.0.8-0001-add-include-stdexcept-for-msvc.patch b/external/nudb/patches/2.0.8-0001-add-include-stdexcept-for-msvc.patch deleted file mode 100644 index 2d5264f3c..000000000 --- a/external/nudb/patches/2.0.8-0001-add-include-stdexcept-for-msvc.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/include/nudb/detail/stream.hpp b/include/nudb/detail/stream.hpp -index 6c07bf1..e0ce8ed 100644 ---- a/include/nudb/detail/stream.hpp -+++ b/include/nudb/detail/stream.hpp -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - - namespace nudb { - namespace detail { -diff --git a/include/nudb/impl/context.ipp b/include/nudb/impl/context.ipp -index beb7058..ffde0b3 100644 ---- a/include/nudb/impl/context.ipp -+++ b/include/nudb/impl/context.ipp -@@ -9,6 +9,7 @@ - #define NUDB_IMPL_CONTEXT_IPP - - #include -+#include - - namespace nudb { -