summaryrefslogtreecommitdiff
path: root/net-p2p/monero/files/monero-0.18.3.3-common-support-boost-filesystem-copy_options.patch
diff options
context:
space:
mode:
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.patch166
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"));