diff options
Diffstat (limited to 'net-p2p/monero/files/monero-0.18.3.3-common-support-boost-filesystem-copy_options.patch')
-rw-r--r-- | net-p2p/monero/files/monero-0.18.3.3-common-support-boost-filesystem-copy_options.patch | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/net-p2p/monero/files/monero-0.18.3.3-common-support-boost-filesystem-copy_options.patch b/net-p2p/monero/files/monero-0.18.3.3-common-support-boost-filesystem-copy_options.patch new file mode 100644 index 00000000..970c873d --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.3-common-support-boost-filesystem-copy_options.patch @@ -0,0 +1,166 @@ +From fcc20f5496fe97c01321963359631c4b22c4f0cf Mon Sep 17 00:00:00 2001 +From: 0xFFFC0000 <0xFFFC0000@proton.me> +Date: Tue, 30 Apr 2024 23:20:10 +0000 +Subject: [PATCH] common: support boost filesystem copy_options. + Co-authored-by: selsta <selsta@sent.at> + +--- + src/common/boost_serialization_helper.h | 3 ++- + src/common/util.cpp | 18 ++++++++++++++++++ + src/common/util.h | 2 ++ + src/p2p/net_peerlist.cpp | 3 ++- + src/wallet/wallet2.cpp | 4 ++-- + tests/unit_tests/wallet_storage.cpp | 13 +++++++------ + 6 files changed, 33 insertions(+), 10 deletions(-) + +diff --git a/src/common/boost_serialization_helper.h b/src/common/boost_serialization_helper.h +index 4a903107f3cb..1eca39f407b9 100644 +--- a/src/common/boost_serialization_helper.h ++++ b/src/common/boost_serialization_helper.h +@@ -35,6 +35,7 @@ + #include <boost/archive/portable_binary_iarchive.hpp> + #include <boost/filesystem/operations.hpp> + ++#include "common/util.h" + + namespace tools + { +@@ -110,7 +111,7 @@ namespace tools + catch(...) + { + // if failed, try reading in unportable mode +- boost::filesystem::copy_file(file_path, file_path + ".unportable", boost::filesystem::copy_option::overwrite_if_exists); ++ tools::copy_file(file_path, file_path + ".unportable"); + data_file.close(); + data_file.open( file_path, std::ios_base::binary | std::ios_base::in); + if(data_file.fail()) +diff --git a/src/common/util.cpp b/src/common/util.cpp +index 4b5e2adb8a49..d5f35ea7aed2 100644 +--- a/src/common/util.cpp ++++ b/src/common/util.cpp +@@ -115,6 +115,24 @@ static int flock_exnb(int fd) + + namespace tools + { ++ ++ void copy_file(const std::string& from, const std::string& to) ++ { ++ using boost::filesystem::path; ++ #if BOOST_VERSION < 107400 ++ // Remove this preprocessor if/else when we are bumping the boost version. ++ boost::filesystem::copy_file( ++ path(from), ++ path(to), ++ boost::filesystem::copy_option::overwrite_if_exists); ++ #else ++ boost::filesystem::copy_file( ++ path(from), ++ path(to), ++ boost::filesystem::copy_options::overwrite_existing); ++ #endif ++ } ++ + std::function<void(int)> signal_handler::m_handler; + + private_file::private_file() noexcept : m_handle(), m_filename() {} +diff --git a/src/common/util.h b/src/common/util.h +index f489594e8901..cfc0fb6923c4 100644 +--- a/src/common/util.h ++++ b/src/common/util.h +@@ -67,6 +67,8 @@ namespace tools + } + }; + ++ void copy_file(const std::string& from, const std::string& to); ++ + //! A file restricted to process owner AND process. Deletes file on destruction. + class private_file { + std::unique_ptr<std::FILE, close_file> m_handle; +diff --git a/src/p2p/net_peerlist.cpp b/src/p2p/net_peerlist.cpp +index 3e132c91faef..c803b0cda695 100644 +--- a/src/p2p/net_peerlist.cpp ++++ b/src/p2p/net_peerlist.cpp +@@ -42,6 +42,7 @@ + #include <boost/serialization/version.hpp> + + #include "net_peerlist_boost_serialization.h" ++#include "common/util.h" + + + namespace nodetool +@@ -200,7 +201,7 @@ namespace nodetool + if (!out) + { + // if failed, try reading in unportable mode +- boost::filesystem::copy_file(path, path + ".unportable", boost::filesystem::copy_option::overwrite_if_exists); ++ tools::copy_file(path, path + ".unportable"); + src_file.close(); + src_file.open( path , std::ios_base::binary | std::ios_base::in); + if(src_file.fail()) +diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp +index f34b1098804e..f8aea71c1a77 100644 +--- a/src/wallet/wallet2.cpp ++++ b/src/wallet/wallet2.cpp +@@ -6208,7 +6208,7 @@ void wallet2::load(const std::string& wallet_, const epee::wipeable_string& pass + catch (...) + { + LOG_PRINT_L0("Failed to open portable binary, trying unportable"); +- if (use_fs) boost::filesystem::copy_file(m_wallet_file, m_wallet_file + ".unportable", boost::filesystem::copy_option::overwrite_if_exists); ++ if (use_fs) tools::copy_file(m_wallet_file, m_wallet_file + ".unportable"); + std::stringstream iss; + iss.str(""); + iss << cache_data; +@@ -6230,7 +6230,7 @@ void wallet2::load(const std::string& wallet_, const epee::wipeable_string& pass + catch (...) + { + LOG_PRINT_L0("Failed to open portable binary, trying unportable"); +- if (use_fs) boost::filesystem::copy_file(m_wallet_file, m_wallet_file + ".unportable", boost::filesystem::copy_option::overwrite_if_exists); ++ if (use_fs) tools::copy_file(m_wallet_file, m_wallet_file + ".unportable"); + std::stringstream iss; + iss.str(""); + iss << cache_file_buf; +diff --git a/tests/unit_tests/wallet_storage.cpp b/tests/unit_tests/wallet_storage.cpp +index dacaff9602ec..bf33936ed4ab 100644 +--- a/tests/unit_tests/wallet_storage.cpp ++++ b/tests/unit_tests/wallet_storage.cpp +@@ -31,6 +31,7 @@ + + #include "file_io_utils.h" + #include "wallet/wallet2.h" ++#include "common/util.h" + + using namespace boost::filesystem; + using namespace epee::file_io_utils; +@@ -47,8 +48,8 @@ TEST(wallet_storage, store_to_file2file) + ASSERT_TRUE(is_file_exist(source_wallet_file.string())); + ASSERT_TRUE(is_file_exist(source_wallet_file.string() + ".keys")); + +- copy_file(source_wallet_file, interm_wallet_file, copy_option::overwrite_if_exists); +- copy_file(source_wallet_file.string() + ".keys", interm_wallet_file.string() + ".keys", copy_option::overwrite_if_exists); ++ tools::copy_file(source_wallet_file.string(), interm_wallet_file.string()); ++ tools::copy_file(source_wallet_file.string() + ".keys", interm_wallet_file.string() + ".keys"); + + ASSERT_TRUE(is_file_exist(interm_wallet_file.string())); + ASSERT_TRUE(is_file_exist(interm_wallet_file.string() + ".keys")); +@@ -138,8 +139,8 @@ TEST(wallet_storage, change_password_same_file) + ASSERT_TRUE(is_file_exist(source_wallet_file.string())); + ASSERT_TRUE(is_file_exist(source_wallet_file.string() + ".keys")); + +- copy_file(source_wallet_file, interm_wallet_file, copy_option::overwrite_if_exists); +- copy_file(source_wallet_file.string() + ".keys", interm_wallet_file.string() + ".keys", copy_option::overwrite_if_exists); ++ tools::copy_file(source_wallet_file.string(), interm_wallet_file.string()); ++ tools::copy_file(source_wallet_file.string() + ".keys", interm_wallet_file.string() + ".keys"); + + ASSERT_TRUE(is_file_exist(interm_wallet_file.string())); + ASSERT_TRUE(is_file_exist(interm_wallet_file.string() + ".keys")); +@@ -177,8 +178,8 @@ TEST(wallet_storage, change_password_different_file) + ASSERT_TRUE(is_file_exist(source_wallet_file.string())); + ASSERT_TRUE(is_file_exist(source_wallet_file.string() + ".keys")); + +- copy_file(source_wallet_file, interm_wallet_file, copy_option::overwrite_if_exists); +- copy_file(source_wallet_file.string() + ".keys", interm_wallet_file.string() + ".keys", copy_option::overwrite_if_exists); ++ tools::copy_file(source_wallet_file.string(), interm_wallet_file.string()); ++ tools::copy_file(source_wallet_file.string() + ".keys", interm_wallet_file.string() + ".keys"); + + ASSERT_TRUE(is_file_exist(interm_wallet_file.string())); + ASSERT_TRUE(is_file_exist(interm_wallet_file.string() + ".keys")); |