commit:     573a31586e499f0c83c51e379abda054a61e8e88
Author:     Filip Kobierski <fkobi <AT> pm <DOT> me>
AuthorDate: Sun Jun  8 00:15:39 2025 +0000
Commit:     Filip Kobierski <fkobi <AT> pm <DOT> me>
CommitDate: Sun Jun  8 00:39:56 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=573a3158

net-p2p/monero: drop 0.18.3.4

Signed-off-by: Filip Kobierski <fkobi <AT> pm.me>

 net-p2p/monero/Manifest                            |   1 -
 .../monero-0.18.3.3-unbundle-dependencies.patch    | 102 ----
 .../monero/files/monero-0.18.3.4-boost-1.85.patch  | 585 ---------------------
 net-p2p/monero/files/monerod.confd                 |   6 -
 net-p2p/monero/files/monerod.initd                 |  23 -
 net-p2p/monero/monero-0.18.3.4-r1.ebuild           | 126 -----
 6 files changed, 843 deletions(-)

diff --git a/net-p2p/monero/Manifest b/net-p2p/monero/Manifest
index 900f20ab05..2c51f3fcd3 100644
--- a/net-p2p/monero/Manifest
+++ b/net-p2p/monero/Manifest
@@ -1,2 +1 @@
-DIST monero-0.18.3.4.tar.gz 14039924 BLAKE2B 
cb60f1db4f482bac3b3f5fa606bf1c78103b14f927d4636e5fda4aa96dcc08a9f990355ceb1cdc8c253245a0a2a1c98cf4fd7101d13d78ac6e7d1450192fc2db
 SHA512 
f2708bf7698410c1509ae41148c298e352b3401e1df900b7152c25cb5ceb2f5bde68274fd37b1a328e932be50bdf93fe364561c520a15e3df7de2cdbd20d1be8
 DIST monero-0.18.4.0.tar.gz 14083573 BLAKE2B 
6edd37cf89305dabddf04aa454a605f578276a924f703025b906612438de9dce12c854127b851ae0a71eb4b7aac6c9aa1bb7beb0d6ed311a55c19387117c2ba0
 SHA512 
6d17654a37d1a3aec37f641a58026a5f602e13836bdc50223ce6bf82ad9be9db2cf5abadd6b7bc963f4bfc0e18aa76298d89050686f6563d0567d2745e0512eb

diff --git a/net-p2p/monero/files/monero-0.18.3.3-unbundle-dependencies.patch 
b/net-p2p/monero/files/monero-0.18.3.3-unbundle-dependencies.patch
deleted file mode 100644
index 6cd7e7c3d3..0000000000
--- a/net-p2p/monero/files/monero-0.18.3.3-unbundle-dependencies.patch
+++ /dev/null
@@ -1,102 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -458,7 +458,7 @@
- # elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*")
- #   set(BSDI TRUE)
- 
--include_directories(external/rapidjson/include external/easylogging++ src 
contrib/epee/include external external/supercop/include)
-+include_directories(external/rapidjson/include external/easylogging++ src 
contrib/epee/include external )
- 
- if(APPLE)
-   cmake_policy(SET CMP0042 NEW)
-@@ -1201,7 +1201,6 @@
-   set(ZMQ_LIB "${ZMQ_LIB};${SODIUM_LIBRARY}")
- endif()
- 
--include(external/supercop/functions.cmake) # place after setting flags and 
before src directory inclusion
- add_subdirectory(contrib)
- add_subdirectory(src)
- 
---- a/external/CMakeLists.txt
-+++ b/external/CMakeLists.txt
-@@ -37,21 +37,7 @@
- 
- find_package(Miniupnpc REQUIRED)
- 
--message(STATUS "Using in-tree miniupnpc")
--set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE)
--add_subdirectory(miniupnp/miniupnpc)
--set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
--set_property(TARGET libminiupnpc-static PROPERTY POSITION_INDEPENDENT_CODE ON)
--if(MSVC)
--  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY 
COMPILE_FLAGS " -wd4244 -wd4267")
--elseif(NOT MSVC)
--  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY 
COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
--endif()
--if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
--      set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY 
COMPILE_FLAGS " -D_NETBSD_SOURCE")
--endif()
--
--set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
-+set(UPNP_LIBRARIES "miniupnpc" PARENT_SCOPE)
- 
- find_package(Unbound)
- 
-@@ -69,4 +55,3 @@
- add_subdirectory(db_drivers)
- add_subdirectory(easylogging++)
- add_subdirectory(qrcodegen)
--add_subdirectory(randomx EXCLUDE_FROM_ALL)
---- a/src/crypto/CMakeLists.txt
-+++ b/src/crypto/CMakeLists.txt
-@@ -55,6 +55,7 @@
- endif()
- 
- include_directories(${RANDOMX_INCLUDE})
-+include_directories(SYSTEM /usr/include/monero)
- 
- set(crypto_headers)
- 
-@@ -97,6 +98,3 @@
- # cheat because cmake and ccache hate each other
- set_property(SOURCE CryptonightR_template.S PROPERTY LANGUAGE C)
- set_property(SOURCE CryptonightR_template.S PROPERTY XCODE_EXPLICIT_FILE_TYPE 
sourcecode.asm)
--
--# Must be done last, because it references libraries in this directory
--add_subdirectory(wallet)
---- a/src/crypto/wallet/crypto.h
-+++ b/src/crypto/wallet/crypto.h
-@@ -30,7 +30,6 @@
- #pragma once
- 
- #include <cstddef>
--#include "crypto/wallet/ops.h"
- 
- namespace crypto {
-   namespace wallet {
---- a/src/device/CMakeLists.txt
-+++ b/src/device/CMakeLists.txt
-@@ -73,7 +73,7 @@
-     cncrypto
-     cryptonote_format_utils_basic
-     ringct_basic
--    wallet-crypto
-+    monero-crypto
-     ${OPENSSL_CRYPTO_LIBRARIES}
-     ${Boost_SERIALIZATION_LIBRARY}
-   PRIVATE
---- a/src/p2p/net_node.inl
-+++ b/src/p2p/net_node.inl
-@@ -60,9 +60,9 @@
- #include "cryptonote_core/cryptonote_core.h"
- #include "net/parse.h"
- 
--#include <miniupnp/miniupnpc/miniupnpc.h>
--#include <miniupnp/miniupnpc/upnpcommands.h>
--#include <miniupnp/miniupnpc/upnperrors.h>
-+#include <miniupnpc/miniupnpc.h>
-+#include <miniupnpc/upnpcommands.h>
-+#include <miniupnpc/upnperrors.h>
- 
- #undef MONERO_DEFAULT_LOG_CATEGORY
- #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"

diff --git a/net-p2p/monero/files/monero-0.18.3.4-boost-1.85.patch 
b/net-p2p/monero/files/monero-0.18.3.4-boost-1.85.patch
deleted file mode 100644
index 1e4793bd12..0000000000
--- a/net-p2p/monero/files/monero-0.18.3.4-boost-1.85.patch
+++ /dev/null
@@ -1,585 +0,0 @@
-From 65568d3a884857ce08d1170f5801a6891a5c187c Mon Sep 17 00:00:00 2001
-From: jeffro256 <[email protected]>
-Date: Fri, 23 Aug 2024 12:15:17 -0500
-Subject: [PATCH] build: fix build with Boost 1.85 and remove instances of
- viewkey logging [RELEASE]
-
-1. Use std::is_standard_layout and std::is_trivially_copyable instead of 
std::is_pod for KV byte-wise serialization, which fixes compile issue for Boost 
UUIDs
-2. Removed reimplementation of std::hash for boost::uuids::uuid
-3. Removed << operator overload for crypto::secret_key
-4. Removed instances in code where private view key was dumped to the log in 
plaintext
-
-Release version of #9450, containing C++14 modified assertions
----
- CMakeLists.txt                                |  2 ++
- .../serialization/keyvalue_serialization.h    | 18 ++++++++-------
- contrib/epee/include/span.h                   | 23 +++++++++++--------
- contrib/epee/include/string_tools.h           |  3 +++
- src/crypto/crypto.h                           | 14 ++++++++---
- .../cryptonote_format_utils.cpp               |  4 ++--
- src/cryptonote_core/cryptonote_tx_utils.cpp   |  4 ++--
- src/cryptonote_protocol/block_queue.cpp       | 13 ++---------
- src/device/device_default.cpp                 |  8 ++++---
- src/lmdb/util.h                               |  4 ++--
- src/simplewallet/simplewallet.cpp             |  6 ++---
- src/wallet/api/wallet.cpp                     |  8 +++----
- src/wallet/wallet2.cpp                        | 18 +++++++--------
- src/wallet/wallet_rpc_server.cpp              |  4 ++--
- tests/benchmark.cpp                           |  2 +-
- tests/core_tests/multisig.cpp                 | 10 ++++----
- tests/functional_tests/make_test_signature.cc |  2 +-
- tests/unit_tests/crypto.cpp                   |  2 +-
- tests/unit_tests/multisig.cpp                 |  2 +-
- tests/unit_tests/serialization.cpp            |  2 +-
- 20 files changed, 80 insertions(+), 69 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8fb03ba1ff..7b77c37393 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1077,6 +1077,8 @@ if(STATIC)
- endif()
- find_package(Boost 1.58 QUIET REQUIRED COMPONENTS system filesystem thread 
date_time chrono regex serialization program_options locale)
- add_definitions(-DBOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION)
-+add_definitions(-DBOOST_NO_AUTO_PTR)
-+add_definitions(-DBOOST_UUID_DISABLE_ALIGNMENT) # This restores UUID's 
std::has_unique_object_representations property
- 
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${OLD_LIB_SUFFIXES})
- if(NOT Boost_FOUND)
-diff --git a/contrib/epee/include/serialization/keyvalue_serialization.h 
b/contrib/epee/include/serialization/keyvalue_serialization.h
-index 06d74329f1..fbbddc7d2f 100644
---- a/contrib/epee/include/serialization/keyvalue_serialization.h
-+++ b/contrib/epee/include/serialization/keyvalue_serialization.h
-@@ -98,16 +98,18 @@ public: \
- #define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, val_name) \
-   
epee::serialization::selector<is_store>::serialize_t_val_as_blob(this_ref.varialble,
 stg, hparent_section, val_name); 
- 
--#define KV_SERIALIZE_VAL_POD_AS_BLOB_N(varialble, val_name) \
--  static_assert(std::is_pod<decltype(this_ref.varialble)>::value, "t_type 
must be a POD type."); \
--  KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, val_name)
-+#define KV_SERIALIZE_VAL_POD_AS_BLOB_N(variable, val_name) \
-+  static_assert(std::is_trivially_copyable<decltype(this_ref.variable)>(), 
"t_type must be a trivially copyable type."); \
-+  static_assert(std::is_standard_layout<decltype(this_ref.variable)>(), 
"t_type must be a standard layout type."); \
-+  KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(variable, val_name)
- 
--#define KV_SERIALIZE_VAL_POD_AS_BLOB_OPT_N(varialble, val_name, 
default_value) \
-+#define KV_SERIALIZE_VAL_POD_AS_BLOB_OPT_N(variable, val_name, default_value) 
\
-   do { \
--    static_assert(std::is_pod<decltype(this_ref.varialble)>::value, "t_type 
must be a POD type."); \
--    bool ret = KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, val_name); \
-+    static_assert(std::is_trivially_copyable<decltype(this_ref.variable)>(), 
"t_type must be a trivially copyable type."); \
-+    static_assert(std::is_standard_layout<decltype(this_ref.variable)>(), 
"t_type must be a standard layout type."); \
-+    bool ret = KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(variable, val_name) \
-     if (!ret) \
--      epee::serialize_default(this_ref.varialble, default_value); \
-+      epee::serialize_default(this_ref.variable, default_value); \
-   } while(0);
- 
- #define KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(varialble, val_name) \
-@@ -118,7 +120,7 @@ public: \
- #define KV_SERIALIZE(varialble)                           
KV_SERIALIZE_N(varialble, #varialble)
- #define KV_SERIALIZE_VAL_POD_AS_BLOB(varialble)           
KV_SERIALIZE_VAL_POD_AS_BLOB_N(varialble, #varialble)
- #define KV_SERIALIZE_VAL_POD_AS_BLOB_OPT(varialble, def)  
KV_SERIALIZE_VAL_POD_AS_BLOB_OPT_N(varialble, #varialble, def)
--#define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE(varialble)     
KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, #varialble) //skip is_pod 
compile time check
-+#define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE(varialble)     
KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, #varialble) //skip 
is_trivially_copyable and is_standard_layout compile time check
- #define KV_SERIALIZE_CONTAINER_POD_AS_BLOB(varialble)     
KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(varialble, #varialble)
- #define KV_SERIALIZE_OPT(variable,default_value)          
KV_SERIALIZE_OPT_N(variable, #variable, default_value)
- 
-diff --git a/contrib/epee/include/span.h b/contrib/epee/include/span.h
-index 23bd51f8c2..01dc387d6d 100644
---- a/contrib/epee/include/span.h
-+++ b/contrib/epee/include/span.h
-@@ -133,17 +133,14 @@ namespace epee
-     return {src.data(), src.size()};
-   }
- 
--  template<typename T>
--  constexpr bool has_padding() noexcept
--  {
--    return !std::is_standard_layout<T>() || alignof(T) != 1;
--  }
--
-   //! \return Cast data from `src` as `span<const std::uint8_t>`.
-   template<typename T>
-   span<const std::uint8_t> to_byte_span(const span<const T> src) noexcept
-   {
--    static_assert(!has_padding<T>(), "source type may have padding");
-+    static_assert(!std::is_empty<T>(), "empty value types will not work -> 
sizeof == 1");
-+    static_assert(std::is_standard_layout<T>(), "type must have standard 
layout");
-+    static_assert(std::is_trivially_copyable<T>(), "type must be trivially 
copyable");
-+    static_assert(alignof(T) == 1, "type may have padding");
-     return {reinterpret_cast<const std::uint8_t*>(src.data()), 
src.size_bytes()}; 
-   }
- 
-@@ -153,7 +150,9 @@ namespace epee
-   {
-     using value_type = typename T::value_type;
-     static_assert(!std::is_empty<value_type>(), "empty value types will not 
work -> sizeof == 1");
--    static_assert(!has_padding<value_type>(), "source value type may have 
padding");
-+    static_assert(std::is_standard_layout<value_type>(), "value type must 
have standard layout");
-+    static_assert(std::is_trivially_copyable<value_type>(), "value type must 
be trivially copyable");
-+    static_assert(alignof(value_type) == 1, "value type may have padding");
-     return {reinterpret_cast<std::uint8_t*>(src.data()), src.size() * 
sizeof(value_type)};
-   }
- 
-@@ -162,7 +161,9 @@ namespace epee
-   span<const std::uint8_t> as_byte_span(const T& src) noexcept
-   {
-     static_assert(!std::is_empty<T>(), "empty types will not work -> sizeof 
== 1");
--    static_assert(!has_padding<T>(), "source type may have padding");
-+    static_assert(std::is_standard_layout<T>(), "type must have standard 
layout");
-+    static_assert(std::is_trivially_copyable<T>(), "type must be trivially 
copyable");
-+    static_assert(alignof(T) == 1, "type may have padding");
-     return {reinterpret_cast<const std::uint8_t*>(std::addressof(src)), 
sizeof(T)};
-   }
- 
-@@ -171,7 +172,9 @@ namespace epee
-   span<std::uint8_t> as_mut_byte_span(T& src) noexcept
-   {
-     static_assert(!std::is_empty<T>(), "empty types will not work -> sizeof 
== 1");
--    static_assert(!has_padding<T>(), "source type may have padding");
-+    static_assert(std::is_standard_layout<T>(), "type must have standard 
layout");
-+    static_assert(std::is_trivially_copyable<T>(), "type must be trivially 
copyable");
-+    static_assert(alignof(T) == 1, "type may have padding");
-     return {reinterpret_cast<std::uint8_t*>(std::addressof(src)), sizeof(T)};
-   }
- 
-diff --git a/contrib/epee/include/string_tools.h 
b/contrib/epee/include/string_tools.h
-index 31c55b97ba..7de73cbf5a 100644
---- a/contrib/epee/include/string_tools.h
-+++ b/contrib/epee/include/string_tools.h
-@@ -91,6 +91,7 @@ namespace string_tools
-   std::string pod_to_hex(const t_pod_type& s)
-   {
-     static_assert(std::is_standard_layout<t_pod_type>(), "expected standard 
layout type");
-+    static_assert(alignof(t_pod_type) == 1, "type may have padding");
-     return to_hex::string(as_byte_span(s));
-   }
-   
//----------------------------------------------------------------------------
-@@ -98,6 +99,8 @@ namespace string_tools
-   bool hex_to_pod(const boost::string_ref hex_str, t_pod_type& s)
-   {
-     static_assert(std::is_standard_layout<t_pod_type>(), "expected standard 
layout type");
-+    static_assert(alignof(t_pod_type) == 1, "type may have padding");
-+    static_assert(std::is_trivially_copyable<t_pod_type>(), "type must be 
trivially copyable");
-     return from_hex::to_buffer(as_mut_byte_span(s), hex_str);
-   }
-   
//----------------------------------------------------------------------------
-diff --git a/src/crypto/crypto.h b/src/crypto/crypto.h
-index d8cd6c6a01..ee1cac04a6 100644
---- a/src/crypto/crypto.h
-+++ b/src/crypto/crypto.h
-@@ -171,7 +171,9 @@ namespace crypto {
-   /* Generate a value filled with random bytes.
-    */
-   template<typename T>
--  typename std::enable_if<std::is_pod<T>::value, T>::type rand() {
-+  T rand() {
-+    static_assert(std::is_standard_layout<T>(), "cannot write random bytes 
into non-standard layout type");
-+    static_assert(std::is_trivially_copyable<T>(), "cannot write random bytes 
into non-trivially copyable type");
-     typename std::remove_cv<T>::type res;
-     generate_random_bytes_thread_safe(sizeof(T), (uint8_t*)&res);
-     return res;
-@@ -314,8 +316,14 @@ namespace crypto {
-   inline std::ostream &operator <<(std::ostream &o, const crypto::public_key 
&v) {
-     epee::to_hex::formatted(o, epee::as_byte_span(v)); return o;
-   }
--  inline std::ostream &operator <<(std::ostream &o, const crypto::secret_key 
&v) {
--    epee::to_hex::formatted(o, epee::as_byte_span(v)); return o;
-+  /* Do NOT overload the << operator for crypto::secret_key here. Use 
secret_key_explicit_print_ref
-+   * instead to prevent accidental implicit dumping of secret key material to 
the logs (which has
-+   * happened before). For the same reason, do not overload it for 
crypto::ec_scalar either since
-+   * crypto::secret_key is a subclass. I'm not sorry that it's obtuse; that's 
the point, bozo.
-+   */
-+  struct secret_key_explicit_print_ref { const crypto::secret_key &sk; };
-+  inline std::ostream &operator <<(std::ostream &o, const 
secret_key_explicit_print_ref v) {
-+    epee::to_hex::formatted(o, epee::as_byte_span(unwrap(unwrap(v.sk)))); 
return o;
-   }
-   inline std::ostream &operator <<(std::ostream &o, const 
crypto::key_derivation &v) {
-     epee::to_hex::formatted(o, epee::as_byte_span(v)); return o;
-diff --git a/src/cryptonote_basic/cryptonote_format_utils.cpp 
b/src/cryptonote_basic/cryptonote_format_utils.cpp
-index 8be23583b5..e6e424c719 100644
---- a/src/cryptonote_basic/cryptonote_format_utils.cpp
-+++ b/src/cryptonote_basic/cryptonote_format_utils.cpp
-@@ -292,7 +292,7 @@ namespace cryptonote
-     bool r = hwdev.generate_key_derivation(tx_public_key, 
ack.m_view_secret_key, recv_derivation);
-     if (!r)
-     {
--      MWARNING("key image helper: failed to generate_key_derivation(" << 
tx_public_key << ", " << ack.m_view_secret_key << ")");
-+      MWARNING("key image helper: failed to generate_key_derivation(" << 
tx_public_key << ", <viewkey>)");
-       memcpy(&recv_derivation, rct::identity().bytes, 
sizeof(recv_derivation));
-     }
- 
-@@ -303,7 +303,7 @@ namespace cryptonote
-       r = hwdev.generate_key_derivation(additional_tx_public_keys[i], 
ack.m_view_secret_key, additional_recv_derivation);
-       if (!r)
-       {
--        MWARNING("key image helper: failed to generate_key_derivation(" << 
additional_tx_public_keys[i] << ", " << ack.m_view_secret_key << ")");
-+        MWARNING("key image helper: failed to generate_key_derivation(" << 
additional_tx_public_keys[i] << ", <viewkey>)");
-       }
-       else
-       {
-diff --git a/src/cryptonote_core/cryptonote_tx_utils.cpp 
b/src/cryptonote_core/cryptonote_tx_utils.cpp
-index dc9d6612f6..8f044154b1 100644
---- a/src/cryptonote_core/cryptonote_tx_utils.cpp
-+++ b/src/cryptonote_core/cryptonote_tx_utils.cpp
-@@ -144,7 +144,7 @@ namespace cryptonote
-       crypto::key_derivation derivation = AUTO_VAL_INIT(derivation);
-       crypto::public_key out_eph_public_key = 
AUTO_VAL_INIT(out_eph_public_key);
-       bool r = 
crypto::generate_key_derivation(miner_address.m_view_public_key, txkey.sec, 
derivation);
--      CHECK_AND_ASSERT_MES(r, false, "while creating outs: failed to 
generate_key_derivation(" << miner_address.m_view_public_key << ", " << 
txkey.sec << ")");
-+      CHECK_AND_ASSERT_MES(r, false, "while creating outs: failed to 
generate_key_derivation(" << miner_address.m_view_public_key << ", " << 
crypto::secret_key_explicit_print_ref{txkey.sec} << ")");
- 
-       r = crypto::derive_public_key(derivation, no, 
miner_address.m_spend_public_key, out_eph_public_key);
-       CHECK_AND_ASSERT_MES(r, false, "while creating outs: failed to 
derive_public_key(" << derivation << ", " << no << ", "<< 
miner_address.m_spend_public_key << ")");
-@@ -484,7 +484,7 @@ namespace cryptonote
-           crypto::generate_ring_signature(tx_prefix_hash, 
boost::get<txin_to_key>(tx.vin[i]).k_image, keys_ptrs, 
in_contexts[i].in_ephemeral.sec, src_entr.real_output, sigs.data());
-         ss_ring_s << "signatures:" << ENDL;
-         std::for_each(sigs.begin(), sigs.end(), [&](const crypto::signature& 
s){ss_ring_s << s << ENDL;});
--        ss_ring_s << "prefix_hash:" << tx_prefix_hash << ENDL << 
"in_ephemeral_key: " << in_contexts[i].in_ephemeral.sec << ENDL << 
"real_output: " << src_entr.real_output << ENDL;
-+        ss_ring_s << "prefix_hash:" << tx_prefix_hash << ENDL << 
"in_ephemeral_key: " << 
crypto::secret_key_explicit_print_ref{in_contexts[i].in_ephemeral.sec} << ENDL 
<< "real_output: " << src_entr.real_output << ENDL;
-         i++;
-       }
- 
-diff --git a/src/cryptonote_protocol/block_queue.cpp 
b/src/cryptonote_protocol/block_queue.cpp
-index 4e65eafa4f..e5a4c0c99a 100644
---- a/src/cryptonote_protocol/block_queue.cpp
-+++ b/src/cryptonote_protocol/block_queue.cpp
-@@ -40,15 +40,6 @@
- #undef MONERO_DEFAULT_LOG_CATEGORY
- #define MONERO_DEFAULT_LOG_CATEGORY "cn.block_queue"
- 
--namespace std {
--  static_assert(sizeof(size_t) <= sizeof(boost::uuids::uuid), 
"boost::uuids::uuid too small");
--  template<> struct hash<boost::uuids::uuid> {
--    std::size_t operator()(const boost::uuids::uuid &_v) const {
--      return reinterpret_cast<const std::size_t &>(_v);
--    }
--  };
--}
--
- namespace cryptonote
- {
- 
-@@ -472,7 +463,7 @@ bool block_queue::has_spans(const boost::uuids::uuid 
&connection_id) const
- float block_queue::get_speed(const boost::uuids::uuid &connection_id) const
- {
-   boost::unique_lock<boost::recursive_mutex> lock(mutex);
--  std::unordered_map<boost::uuids::uuid, float> speeds;
-+  std::unordered_map<boost::uuids::uuid, float, 
boost::hash<boost::uuids::uuid>> speeds;
-   for (const auto &span: blocks)
-   {
-     if (span.blocks.empty())
-@@ -480,7 +471,7 @@ float block_queue::get_speed(const boost::uuids::uuid 
&connection_id) const
-     // note that the average below does not average over the whole set, but 
over the
-     // previous pseudo average and the latest rate: this gives much more 
importance
-     // to the latest measurements, which is fine here
--    std::unordered_map<boost::uuids::uuid, float>::iterator i = 
speeds.find(span.connection_id);
-+    const auto i = speeds.find(span.connection_id);
-     if (i == speeds.end())
-       speeds.insert(std::make_pair(span.connection_id, span.rate));
-     else
-diff --git a/src/device/device_default.cpp b/src/device/device_default.cpp
-index d70ece229c..c770a6e221 100644
---- a/src/device/device_default.cpp
-+++ b/src/device/device_default.cpp
-@@ -317,13 +317,15 @@ namespace hw {
-             {
-             // sending change to yourself; derivation = a*R
-                 r = generate_key_derivation(txkey_pub, 
sender_account_keys.m_view_secret_key, derivation);
--                CHECK_AND_ASSERT_MES(r, false, "at creation outs: failed to 
generate_key_derivation(" << txkey_pub << ", " << 
sender_account_keys.m_view_secret_key << ")");
-+                CHECK_AND_ASSERT_MES(r, false, "at creation outs: failed to 
generate_key_derivation(" << txkey_pub << ", <viewkey>)");
-             }
-             else
-             {
-             // sending to the recipient; derivation = r*A (or s*C in the 
subaddress scheme)
--                r = generate_key_derivation(dst_entr.addr.m_view_public_key, 
dst_entr.is_subaddress && need_additional_txkeys ? additional_txkey.sec : 
tx_key, derivation);
--                CHECK_AND_ASSERT_MES(r, false, "at creation outs: failed to 
generate_key_derivation(" << dst_entr.addr.m_view_public_key << ", " << 
(dst_entr.is_subaddress && need_additional_txkeys ? additional_txkey.sec : 
tx_key) << ")");
-+                const crypto::secret_key &tx_privkey{dst_entr.is_subaddress 
&& need_additional_txkeys ? additional_txkey.sec : tx_key};
-+                r = generate_key_derivation(dst_entr.addr.m_view_public_key, 
tx_privkey, derivation);
-+                CHECK_AND_ASSERT_MES(r, false, "at creation outs: failed to 
generate_key_derivation("
-+                    << dst_entr.addr.m_view_public_key << ", " << 
crypto::secret_key_explicit_print_ref{tx_privkey} << ")");
-             }
- 
-             if (need_additional_txkeys)
-diff --git a/src/lmdb/util.h b/src/lmdb/util.h
-index c6c75bc004..392ff20390 100644
---- a/src/lmdb/util.h
-+++ b/src/lmdb/util.h
-@@ -127,7 +127,7 @@ namespace lmdb
-     /*!
-         A LMDB comparison function that uses `std::memcmp`.
- 
--        \toaram T is `!epee::has_padding`
-+        \toaram T has standard layout and an alignment of 1
-         \tparam offset to `T` within the value.
- 
-         \return The result of `std::memcmp` over the value.
-@@ -135,7 +135,7 @@ namespace lmdb
-     template<typename T, std::size_t offset = 0>
-     inline int compare(MDB_val const* left, MDB_val const* right) noexcept
-     {
--        static_assert(!epee::has_padding<T>(), "memcmp will not work");
-+        static_assert(std::is_standard_layout<T>() && alignof(T) == 1, 
"memcmp will not work");
-         if (!left || !right || left->mv_size < sizeof(T) + offset || 
right->mv_size < sizeof(T) + offset)
-         {
-             assert("invalid use of custom comparison" == 0);
-diff --git a/src/simplewallet/simplewallet.cpp 
b/src/simplewallet/simplewallet.cpp
-index b9e30f9d94..011b1c7613 100644
---- a/src/simplewallet/simplewallet.cpp
-+++ b/src/simplewallet/simplewallet.cpp
-@@ -1979,7 +1979,7 @@ bool simple_wallet::rpc_payment_info(const 
std::vector<std::string> &args)
-     crypto::public_key pkey;
-     crypto::secret_key_to_public_key(m_wallet->get_rpc_client_secret_key(), 
pkey);
-     message_writer() << tr("RPC client ID: ") << pkey;
--    message_writer() << tr("RPC client secret key: ") << 
m_wallet->get_rpc_client_secret_key();
-+    message_writer() << tr("RPC client secret key: ") << 
crypto::secret_key_explicit_print_ref{m_wallet->get_rpc_client_secret_key()};
-     if (!m_wallet->get_rpc_payment_info(false, payment_required, credits, 
diff, credits_per_hash_found, hashing_blob, height, seed_height, seed_hash, 
next_seed_hash, cookie))
-     {
-       fail_msg_writer() << tr("Failed to query daemon");
-@@ -8026,9 +8026,9 @@ bool simple_wallet::submit_transfer(const 
std::vector<std::string> &args_)
- std::string get_tx_key_stream(crypto::secret_key tx_key, 
std::vector<crypto::secret_key> additional_tx_keys)
- {
-   ostringstream oss;
--  oss << epee::string_tools::pod_to_hex(tx_key);
-+  oss << epee::string_tools::pod_to_hex(unwrap(unwrap(tx_key)));
-   for (size_t i = 0; i < additional_tx_keys.size(); ++i)
--    oss << epee::string_tools::pod_to_hex(additional_tx_keys[i]);
-+    oss << 
epee::string_tools::pod_to_hex(unwrap(unwrap(additional_tx_keys[i])));
-   return oss.str();
- }
- 
-diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
-index fc4f891281..2ed14bfbd5 100644
---- a/src/wallet/api/wallet.cpp
-+++ b/src/wallet/api/wallet.cpp
-@@ -881,7 +881,7 @@ std::string WalletImpl::integratedAddress(const 
std::string &payment_id) const
- 
- std::string WalletImpl::secretViewKey() const
- {
--    return 
epee::string_tools::pod_to_hex(m_wallet->get_account().get_keys().m_view_secret_key);
-+    return 
epee::string_tools::pod_to_hex(unwrap(unwrap(m_wallet->get_account().get_keys().m_view_secret_key)));
- }
- 
- std::string WalletImpl::publicViewKey() const
-@@ -891,7 +891,7 @@ std::string WalletImpl::publicViewKey() const
- 
- std::string WalletImpl::secretSpendKey() const
- {
--    return 
epee::string_tools::pod_to_hex(m_wallet->get_account().get_keys().m_spend_secret_key);
-+    return 
epee::string_tools::pod_to_hex(unwrap(unwrap(m_wallet->get_account().get_keys().m_spend_secret_key)));
- }
- 
- std::string WalletImpl::publicSpendKey() const
-@@ -1878,9 +1878,9 @@ std::string WalletImpl::getTxKey(const std::string 
&txid_str) const
-         {
-             clearStatus();
-             std::ostringstream oss;
--            oss << epee::string_tools::pod_to_hex(tx_key);
-+            oss << epee::string_tools::pod_to_hex(unwrap(unwrap(tx_key)));
-             for (size_t i = 0; i < additional_tx_keys.size(); ++i)
--                oss << epee::string_tools::pod_to_hex(additional_tx_keys[i]);
-+                oss << 
epee::string_tools::pod_to_hex(unwrap(unwrap(additional_tx_keys[i])));
-             return oss.str();
-         }
-         else
-diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
-index ad8c361909..90b5731695 100644
---- a/src/wallet/wallet2.cpp
-+++ b/src/wallet/wallet2.cpp
-@@ -4613,7 +4613,7 @@ boost::optional<wallet2::keys_file_data> 
wallet2::get_keys_file_data(const epee:
-     original_address = get_account_address_as_str(m_nettype, false, 
m_original_address);
-     value.SetString(original_address.c_str(), original_address.length());
-     json.AddMember("original_address", value, json.GetAllocator());
--    original_view_secret_key = 
epee::string_tools::pod_to_hex(m_original_view_secret_key);
-+    original_view_secret_key = 
epee::string_tools::pod_to_hex(unwrap(unwrap(m_original_view_secret_key)));
-     value.SetString(original_view_secret_key.c_str(), 
original_view_secret_key.length());
-     json.AddMember("original_view_secret_key", value, json.GetAllocator());
-   }
-@@ -7077,7 +7077,7 @@ void wallet2::commit_tx(pending_tx& ptx)
-     cryptonote::COMMAND_RPC_SUBMIT_RAW_TX::request oreq;
-     cryptonote::COMMAND_RPC_SUBMIT_RAW_TX::response ores;
-     oreq.address = get_account().get_public_address_str(m_nettype);
--    oreq.view_key = 
string_tools::pod_to_hex(get_account().get_keys().m_view_secret_key);
-+    oreq.view_key = 
string_tools::pod_to_hex(unwrap(unwrap(get_account().get_keys().m_view_secret_key)));
-     oreq.tx = epee::string_tools::buff_to_hex_nodelimer(tx_to_blob(ptx.tx));
-     {
-       const boost::lock_guard<boost::recursive_mutex> 
lock{m_daemon_rpc_mutex};
-@@ -10075,7 +10075,7 @@ bool wallet2::light_wallet_login(bool &new_address)
-   tools::COMMAND_RPC_LOGIN::request request;
-   tools::COMMAND_RPC_LOGIN::response response;
-   request.address = get_account().get_public_address_str(m_nettype);
--  request.view_key = 
string_tools::pod_to_hex(get_account().get_keys().m_view_secret_key);
-+  request.view_key = 
string_tools::pod_to_hex(unwrap(unwrap(get_account().get_keys().m_view_secret_key)));
-   // Always create account if it doesn't exist.
-   request.create_account = true;
-   m_daemon_rpc_mutex.lock();
-@@ -10102,7 +10102,7 @@ bool 
wallet2::light_wallet_import_wallet_request(tools::COMMAND_RPC_IMPORT_WALLE
-   MDEBUG("Light wallet import wallet request");
-   tools::COMMAND_RPC_IMPORT_WALLET_REQUEST::request oreq;
-   oreq.address = get_account().get_public_address_str(m_nettype);
--  oreq.view_key = 
string_tools::pod_to_hex(get_account().get_keys().m_view_secret_key);
-+  oreq.view_key = 
string_tools::pod_to_hex(unwrap(unwrap(get_account().get_keys().m_view_secret_key)));
-   m_daemon_rpc_mutex.lock();
-   bool r = invoke_http_json("/import_wallet_request", oreq, response, 
rpc_timeout, "POST");
-   m_daemon_rpc_mutex.unlock();
-@@ -10121,7 +10121,7 @@ void wallet2::light_wallet_get_unspent_outs()
-   
-   oreq.amount = "0";
-   oreq.address = get_account().get_public_address_str(m_nettype);
--  oreq.view_key = 
string_tools::pod_to_hex(get_account().get_keys().m_view_secret_key);
-+  oreq.view_key = 
string_tools::pod_to_hex(unwrap(unwrap(get_account().get_keys().m_view_secret_key)));
-   // openMonero specific
-   oreq.dust_threshold = 
boost::lexical_cast<std::string>(::config::DEFAULT_DUST_THRESHOLD);
-   // below are required by openMonero api - but are not used.
-@@ -10273,7 +10273,7 @@ bool 
wallet2::light_wallet_get_address_info(tools::COMMAND_RPC_GET_ADDRESS_INFO:
-   tools::COMMAND_RPC_GET_ADDRESS_INFO::request request;
-   
-   request.address = get_account().get_public_address_str(m_nettype);
--  request.view_key = 
string_tools::pod_to_hex(get_account().get_keys().m_view_secret_key);
-+  request.view_key = 
string_tools::pod_to_hex(unwrap(unwrap(get_account().get_keys().m_view_secret_key)));
-   m_daemon_rpc_mutex.lock();
-   bool r = invoke_http_json("/get_address_info", request, response, 
rpc_timeout, "POST");
-   m_daemon_rpc_mutex.unlock();
-@@ -10290,7 +10290,7 @@ void wallet2::light_wallet_get_address_txs()
-   tools::COMMAND_RPC_GET_ADDRESS_TXS::response ires;
-   
-   ireq.address = get_account().get_public_address_str(m_nettype);
--  ireq.view_key = 
string_tools::pod_to_hex(get_account().get_keys().m_view_secret_key);
-+  ireq.view_key = 
string_tools::pod_to_hex(unwrap(unwrap(get_account().get_keys().m_view_secret_key)));
-   m_daemon_rpc_mutex.lock();
-   bool r = invoke_http_json("/get_address_txs", ireq, ires, rpc_timeout, 
"POST");
-   m_daemon_rpc_mutex.unlock();
-@@ -10520,7 +10520,7 @@ bool wallet2::light_wallet_key_image_is_ours(const 
crypto::key_image& key_image,
-   const account_keys& ack = get_account().get_keys();
-   crypto::key_derivation derivation;
-   bool r = crypto::generate_key_derivation(tx_public_key, 
ack.m_view_secret_key, derivation);
--  CHECK_AND_ASSERT_MES(r, false, "failed to generate_key_derivation(" << 
tx_public_key << ", " << ack.m_view_secret_key << ")");
-+  CHECK_AND_ASSERT_MES(r, false, "failed to generate_key_derivation(" << 
tx_public_key << ", " << 
crypto::secret_key_explicit_print_ref{ack.m_view_secret_key} << ")");
- 
-   r = crypto::derive_public_key(derivation, out_index, 
ack.m_account_address.m_spend_public_key, in_ephemeral.pub);
-   CHECK_AND_ASSERT_MES(r, false, "failed to derive_public_key (" << 
derivation << ", " << out_index << ", " << 
ack.m_account_address.m_spend_public_key << ")");
-@@ -10528,7 +10528,7 @@ bool wallet2::light_wallet_key_image_is_ours(const 
crypto::key_image& key_image,
-   crypto::derive_secret_key(derivation, out_index, ack.m_spend_secret_key, 
in_ephemeral.sec);
-   crypto::public_key out_pkey_test;
-   r = crypto::secret_key_to_public_key(in_ephemeral.sec, out_pkey_test);
--  CHECK_AND_ASSERT_MES(r, false, "failed to secret_key_to_public_key(" << 
in_ephemeral.sec << ")");
-+  CHECK_AND_ASSERT_MES(r, false, "failed to secret_key_to_public_key(" << 
crypto::secret_key_explicit_print_ref{in_ephemeral.sec} << ")");
-   CHECK_AND_ASSERT_MES(in_ephemeral.pub == out_pkey_test, false, "derived 
secret key doesn't match derived public key");
- 
-   crypto::generate_key_image(in_ephemeral.pub, in_ephemeral.sec, 
calculated_key_image);
-diff --git a/src/wallet/wallet_rpc_server.cpp 
b/src/wallet/wallet_rpc_server.cpp
-index b1419949f8..3c548de135 100644
---- a/src/wallet/wallet_rpc_server.cpp
-+++ b/src/wallet/wallet_rpc_server.cpp
-@@ -1247,9 +1247,9 @@ namespace tools
-       
res.tx_hash_list.push_back(epee::string_tools::pod_to_hex(cryptonote::get_transaction_hash(ptx.tx)));
-       if (req.get_tx_keys)
-       {
--        res.tx_key_list.push_back(epee::string_tools::pod_to_hex(ptx.tx_key));
-+        
res.tx_key_list.push_back(epee::string_tools::pod_to_hex(unwrap(unwrap(ptx.tx_key))));
-         for (const crypto::secret_key& additional_tx_key : 
ptx.additional_tx_keys)
--          res.tx_key_list.back() += 
epee::string_tools::pod_to_hex(additional_tx_key);
-+          res.tx_key_list.back() += 
epee::string_tools::pod_to_hex(unwrap(unwrap(additional_tx_key)));
-       }
-     }
- 
-diff --git a/tests/benchmark.cpp b/tests/benchmark.cpp
-index 6a845d61a4..660783dd91 100644
---- a/tests/benchmark.cpp
-+++ b/tests/benchmark.cpp
-@@ -109,7 +109,7 @@ namespace
-     template<typename T>
-     bool compare(const T& lhs, const T& rhs) noexcept
-     {
--        static_assert(!epee::has_padding<T>(), "type might have padding");
-+        static_assert(std::is_standard_layout<T>() && alignof(T) == 1, "type 
might have padding");
-         return std::memcmp(std::addressof(lhs), std::addressof(rhs), 
sizeof(T)) == 0;
-     }
- 
-diff --git a/tests/core_tests/multisig.cpp b/tests/core_tests/multisig.cpp
-index 966c761163..1d3a6a3a10 100644
---- a/tests/core_tests/multisig.cpp
-+++ b/tests/core_tests/multisig.cpp
-@@ -227,13 +227,13 @@ bool 
gen_multisig_tx_validation_base::generate_with(std::vector<test_event_entry
-         CHECK_AND_ASSERT_MES(r, false, "Failed to generate multisig export 
key image");
-       }
-       MDEBUG("Party " << msidx << ":");
--      MDEBUG("spend: sec " << 
miner_account[msidx].get_keys().m_spend_secret_key << ", pub " << 
miner_account[msidx].get_keys().m_account_address.m_spend_public_key);
--      MDEBUG("view: sec " << 
miner_account[msidx].get_keys().m_view_secret_key << ", pub " << 
miner_account[msidx].get_keys().m_account_address.m_view_public_key);
-+      MDEBUG("spend: sec " << 
crypto::secret_key_explicit_print_ref{miner_account[msidx].get_keys().m_spend_secret_key}
 << ", pub " << 
miner_account[msidx].get_keys().m_account_address.m_spend_public_key);
-+      MDEBUG("view: sec " << 
crypto::secret_key_explicit_print_ref{miner_account[msidx].get_keys().m_view_secret_key}
 << ", pub " << 
miner_account[msidx].get_keys().m_account_address.m_view_public_key);
-       for (const auto &k: miner_account[msidx].get_multisig_keys())
--        MDEBUG("msk: " << k);
-+        MDEBUG("msk: " << crypto::secret_key_explicit_print_ref{k});
-       for (size_t n = 0; n < account_k[msidx][tdidx].size(); ++n)
-       {
--        MDEBUG("k: " << account_k[msidx][tdidx][n]);
-+        MDEBUG("k: " << 
crypto::secret_key_explicit_print_ref{account_k[msidx][tdidx][n]});
-         MDEBUG("L: " << account_L[msidx][tdidx][n]);
-         MDEBUG("R: " << account_R[msidx][tdidx][n]);
-       }
-@@ -406,7 +406,7 @@ bool 
gen_multisig_tx_validation_base::generate_with(std::vector<test_event_entry
-       MDEBUG("signing with k " << k.back()[n]);
-     MDEBUG("signing with sk " << skey);
-     for (const auto &sk: used_keys)
--      MDEBUG("  created with sk " << sk);
-+      MDEBUG("  created with sk " << 
crypto::secret_key_explicit_print_ref{sk});
-     
CHECK_AND_ASSERT_MES(signer_tx_builder.next_partial_sign(sig.total_alpha_G, 
sig.total_alpha_H, k, skey, sig.c_0, sig.s), false, "error: 
multisig::signing::tx_builder_ringct_t::next_partial_sign");
- 
-     // in round-robin signing, the last signer finalizes the tx
-diff --git a/tests/functional_tests/make_test_signature.cc 
b/tests/functional_tests/make_test_signature.cc
-index e9dab8bd46..09a3f51c1a 100644
---- a/tests/functional_tests/make_test_signature.cc
-+++ b/tests/functional_tests/make_test_signature.cc
-@@ -48,7 +48,7 @@ int main(int argc, const char **argv)
-     crypto::public_key pkey;
-     crypto::random32_unbiased((unsigned char*)skey.data);
-     crypto::secret_key_to_public_key(skey, pkey);
--    printf("%s %s\n", epee::string_tools::pod_to_hex(skey).c_str(), 
epee::string_tools::pod_to_hex(pkey).c_str());
-+    printf("%s %s\n", 
epee::string_tools::pod_to_hex(unwrap(unwrap(skey))).c_str(), 
epee::string_tools::pod_to_hex(pkey).c_str());
-     return 0;
-   }
- 
-diff --git a/tests/unit_tests/crypto.cpp b/tests/unit_tests/crypto.cpp
-index 7f926534a3..329992463c 100644
---- a/tests/unit_tests/crypto.cpp
-+++ b/tests/unit_tests/crypto.cpp
-@@ -72,10 +72,10 @@ TEST(Crypto, Ostream)
-   EXPECT_TRUE(is_formatted<crypto::hash8>());
-   EXPECT_TRUE(is_formatted<crypto::hash>());
-   EXPECT_TRUE(is_formatted<crypto::public_key>());
--  EXPECT_TRUE(is_formatted<crypto::secret_key>());
-   EXPECT_TRUE(is_formatted<crypto::signature>());
-   EXPECT_TRUE(is_formatted<crypto::key_derivation>());
-   EXPECT_TRUE(is_formatted<crypto::key_image>());
-+  EXPECT_TRUE(is_formatted<rct::key>());
- }
- 
- TEST(Crypto, null_keys)
-diff --git a/tests/unit_tests/multisig.cpp b/tests/unit_tests/multisig.cpp
-index 3b3c4197c0..71416aaf33 100644
---- a/tests/unit_tests/multisig.cpp
-+++ b/tests/unit_tests/multisig.cpp
-@@ -80,7 +80,7 @@ static void make_wallet(unsigned int idx, tools::wallet2 
&wallet)
-     wallet.generate("", "", spendkey, true, false);
-     ASSERT_TRUE(test_addresses[idx].address == 
wallet.get_account().get_public_address_str(cryptonote::TESTNET));
-     wallet.decrypt_keys("");
--    ASSERT_TRUE(test_addresses[idx].spendkey == 
epee::string_tools::pod_to_hex(wallet.get_account().get_keys().m_spend_secret_key));
-+    ASSERT_TRUE(test_addresses[idx].spendkey == 
epee::string_tools::pod_to_hex(unwrap(unwrap(wallet.get_account().get_keys().m_spend_secret_key))));
-     wallet.encrypt_keys("");
-   }
-   catch (const std::exception &e)
-diff --git a/tests/unit_tests/serialization.cpp 
b/tests/unit_tests/serialization.cpp
-index 0fdd832856..fdf6032722 100644
---- a/tests/unit_tests/serialization.cpp
-+++ b/tests/unit_tests/serialization.cpp
-@@ -1103,7 +1103,7 @@ TEST(Serialization, portability_signed_tx)
-   ASSERT_TRUE(ptx.selected_transfers.front() == 2);
-   // ptx.{key_images, tx_key}
-   ASSERT_TRUE(ptx.key_images == 
"<6c3cd6af97c4070a7aef9b1344e7463e29c7cd245076fdb65da447a34da3ca76> ");
--  ASSERT_TRUE(epee::string_tools::pod_to_hex(ptx.tx_key) == 
"0100000000000000000000000000000000000000000000000000000000000000");
-+  ASSERT_TRUE(epee::string_tools::pod_to_hex(unwrap(unwrap(ptx.tx_key))) == 
"0100000000000000000000000000000000000000000000000000000000000000");
-   // ptx.dests
-   ASSERT_TRUE(ptx.dests.size() == 1);
-   ASSERT_TRUE(ptx.dests[0].amount == 1400000000000);

diff --git a/net-p2p/monero/files/monerod.confd 
b/net-p2p/monero/files/monerod.confd
deleted file mode 100644
index 94515dcc25..0000000000
--- a/net-p2p/monero/files/monerod.confd
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright 2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-monerod_args="--config-file /etc/monero/monerod.conf --non-interactive"
-monerod_user=monero
-monerod_group=monero

diff --git a/net-p2p/monero/files/monerod.initd 
b/net-p2p/monero/files/monerod.initd
deleted file mode 100644
index bf554052a6..0000000000
--- a/net-p2p/monero/files/monerod.initd
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-pidfile=/var/run/monerod.pid
-command=/usr/bin/monerod
-command_args="${monerod_args}"
-command_progress=1
-start_stop_daemon_args="-u ${monerod_user} -b -m -p ${pidfile}"
-retry="SIGTERM/30/SIGKILL/5"
-
-name="Monero P2P Daemon"
-description="Connects to the Monero P2P network"
-
-depend() {
-    need localmount
-    need net
-}
-
-start_pre() {
-    checkpath --directory --owner ${monerod_user}:${monerod_group} --mode 0755 
\
-             /var/lib/monero /var/log/monero
-}

diff --git a/net-p2p/monero/monero-0.18.3.4-r1.ebuild 
b/net-p2p/monero/monero-0.18.3.4-r1.ebuild
deleted file mode 100644
index 5e7f03ee9c..0000000000
--- a/net-p2p/monero/monero-0.18.3.4-r1.ebuild
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake systemd
-
-DESCRIPTION="The secure, private, untraceable cryptocurrency"
-HOMEPAGE="https://github.com/monero-project/monero";
-
-if [[ ${PV} == 9999 ]]; then
-       inherit git-r3
-       EGIT_REPO_URI="https://github.com/monero-project/monero.git";
-       EGIT_SUBMODULES=()
-else
-       SRC_URI="https://github.com/monero-project/monero/archive/v${PV}.tar.gz 
-> ${P}.tar.gz"
-       KEYWORDS="~amd64 ~arm64 ~x86"
-fi
-
-LICENSE="BSD MIT"
-SLOT="0"
-IUSE="+daemon hw-wallet readline +tools +wallet-cli +wallet-rpc"
-REQUIRED_USE="|| ( daemon tools wallet-cli wallet-rpc )"
-RESTRICT="test"
-
-DEPEND="
-       acct-group/monero
-       acct-user/monero
-       <dev-libs/boost-1.87:=[nls]
-       dev-libs/libsodium:=
-       dev-libs/openssl:=
-       dev-libs/randomx
-       dev-libs/rapidjson
-       dev-libs/supercop
-       net-dns/unbound:=[threads]
-       net-libs/czmq:=
-       net-libs/miniupnpc:=
-       readline? ( sys-libs/readline:0= )
-       hw-wallet? (
-               dev-libs/hidapi
-               dev-libs/protobuf:=
-               virtual/libusb:1
-       )
-"
-RDEPEND="${DEPEND}"
-BDEPEND="virtual/pkgconfig
-       <dev-build/cmake-4
-"
-
-PATCHES=(
-       "${FILESDIR}/${PN}-0.18.3.3-unbundle-dependencies.patch"
-       "${FILESDIR}/${PN}-0.18.3.3-miniupnp-api-18.patch"
-       "${FILESDIR}/${PN}-0.18.3.4-boost-1.85.patch"
-)
-
-src_configure() {
-       local mycmakeargs=(
-               # TODO: Update CMake to install built libraries (help wanted)
-               -DBUILD_SHARED_LIBS=OFF
-               -DMANUAL_SUBMODULES=ON
-               -DUSE_DEVICE_TREZOR=$(usex hw-wallet ON OFF)
-       )
-
-       use elibc_musl && mycmakeargs+=( -DSTACK_TRACE=OFF )
-
-       cmake_src_configure
-}
-
-src_compile() {
-       local targets=()
-       use daemon && targets+=(daemon)
-       use tools && 
targets+=(blockchain_{ancestry,blackball,db,depth,export,import,prune,prune_known_spent_data,stats,usage})
-       use wallet-cli && targets+=(simplewallet)
-       use wallet-rpc && targets+=(wallet_rpc_server)
-       cmake_build ${targets[@]}
-}
-
-src_install() {
-       einstalldocs
-
-       # Install all binaries.
-       find "${BUILD_DIR}/bin/" -type f -executable -print0 |
-               while IFS= read -r -d '' line; do
-                       dobin "$line"
-               done
-
-       if use daemon; then
-               dodoc utils/conf/monerod.conf
-
-               # data-dir
-               keepdir /var/lib/monero
-               fowners monero:monero /var/lib/monero
-               fperms 0755 /var/lib/monero
-
-               # log-file dir
-               keepdir /var/log/monero
-               fowners monero:monero /var/log/monero
-               fperms 0755 /var/log/monero
-
-               # /etc/monero/monerod.conf
-               insinto /etc/monero
-               doins "${FILESDIR}/monerod.conf"
-
-               # OpenRC
-               newconfd "${FILESDIR}/monerod.confd" monerod
-               newinitd "${FILESDIR}/monerod.initd" monerod
-
-               # systemd
-               systemd_dounit "${FILESDIR}/monerod.service"
-       fi
-}
-
-pkg_postinst() {
-       if use daemon; then
-               elog "Start the Monero P2P daemon as a system service with"
-               elog "'rc-service monerod start'. Enable it at startup with"
-               elog "'rc-update add monerod default'."
-               elog
-               elog "Run monerod status as any user to get sync status and 
other stats."
-               elog
-               elog "The Monero blockchain can take up a lot of space (250 
GiB) and is stored"
-               elog "in /var/lib/monero by default. You may want to enable 
pruning by adding"
-               elog "'prune-blockchain=1' to /etc/monero/monerod.conf to prune 
the blockchain"
-               elog "or move the data directory to another disk."
-       fi
-}


Reply via email to