public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2020-12-29 10:58 Andrew Ammerlaan
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Ammerlaan @ 2020-12-29 10:58 UTC (permalink / raw
  To: gentoo-commits

commit:     7240540fcbd9e5fabb9d985264b9335540569251
Author:     Theo Anderson <telans <AT> posteo <DOT> de>
AuthorDate: Tue Dec 29 10:34:46 2020 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Tue Dec 29 10:35:24 2020 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=7240540f

net-p2p/monero: use dev-libs/supercop instead of bundled

Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Theo Anderson <telans <AT> posteo.de>

 net-p2p/monero/Manifest                            |   1 -
 .../monero-0.17.1.7-unbundle-dependencies.patch    | 112 +++++++++++++++++++++
 net-p2p/monero/monero-0.17.1.7.ebuild              |  34 ++-----
 3 files changed, 120 insertions(+), 27 deletions(-)

diff --git a/net-p2p/monero/Manifest b/net-p2p/monero/Manifest
index b4707575..28600df9 100644
--- a/net-p2p/monero/Manifest
+++ b/net-p2p/monero/Manifest
@@ -1,2 +1 @@
 DIST monero-0.17.1.7.tar.gz 10598750 BLAKE2B 03a80f3c38bc1b643d8d9ddba4ee1de59e0f4c6d66cfc5dcb700d19659a5cb66add4fcf1320c1ed2b7dfa15fdfe9548eb758e67661832f9da7bd0e173b5a0ae1 SHA512 b049a738eb5752a620fc19dfafd5e2996d3f33d89737774264a5ef69b7fcfcd9fe852b89e35187486f48fdc8bb73c2010a1917d1ed7fcb4f1f87b18a6bb4c2d5
-DIST monero-supercop-0.17.1.7.tar.gz 346604 BLAKE2B 10e48076acb2e5de5acb2efee61b2fac40fdfec3bc4037a94199d56ee2446466126e1b9dade56ee69598f4bd3c64b45d86d0810f24f461f6e09fb84c87e1ef93 SHA512 06cca8d1def31aa11bf5aa42d861c4a027786f7cc494fa3ab53a2bc4bd9d1f55b2389020ba5fd1816ed277b6e4320ad8edbb3117dcf4981fc7fba655c4bbe648

diff --git a/net-p2p/monero/files/monero-0.17.1.7-unbundle-dependencies.patch b/net-p2p/monero/files/monero-0.17.1.7-unbundle-dependencies.patch
new file mode 100644
index 00000000..ea7f8049
--- /dev/null
+++ b/net-p2p/monero/files/monero-0.17.1.7-unbundle-dependencies.patch
@@ -0,0 +1,112 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 41f82e26c..3eb2b2e78 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -312,7 +312,7 @@ endif()
+ # 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)
+   include_directories(SYSTEM /usr/include/malloc)
+@@ -995,7 +995,6 @@ if(SODIUM_LIBRARY)
+   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)
+ 
+diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
+index a8916a7d0..05ab35c82 100644
+--- a/external/CMakeLists.txt
++++ b/external/CMakeLists.txt
+@@ -37,19 +37,7 @@
+ 
+ find_package(Miniupnpc REQUIRED)
+ 
+-message(STATUS "Using in-tree miniupnpc")
+-add_subdirectory(miniupnp/miniupnpc)
+-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+-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)
+ 
+@@ -81,4 +69,3 @@ endif()
+ add_subdirectory(db_drivers)
+ add_subdirectory(easylogging++)
+ add_subdirectory(qrcodegen)
+-add_subdirectory(randomx EXCLUDE_FROM_ALL)
+diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt
+index 3b33fe90a..ba354a0e8 100644
+--- a/src/crypto/CMakeLists.txt
++++ b/src/crypto/CMakeLists.txt
+@@ -55,6 +55,7 @@ list(APPEND crypto_sources CryptonightR_template.S)
+ endif()
+ 
+ include_directories(${RANDOMX_INCLUDE})
++include_directories(SYSTEM /usr/include/monero)
+ 
+ set(crypto_headers)
+ 
+@@ -116,6 +117,3 @@ endif()
+ 
+ # cheat because cmake and ccache hate each other
+ set_property(SOURCE CryptonightR_template.S PROPERTY LANGUAGE C)
+-
+-# Must be done last, because it references libraries in this directory
+-add_subdirectory(wallet)
+diff --git a/src/crypto/wallet/crypto.h b/src/crypto/wallet/crypto.h
+index a4c5d5a07..5c6b96cd8 100644
+--- a/src/crypto/wallet/crypto.h
++++ b/src/crypto/wallet/crypto.h
+@@ -29,7 +29,6 @@
+ #pragma once
+ 
+ #include <cstddef>
+-#include "crypto/wallet/ops.h"
+ 
+ namespace crypto {
+   namespace wallet {
+diff --git a/src/device/CMakeLists.txt b/src/device/CMakeLists.txt
+index ff2afba4b..26b0f4523 100644
+--- a/src/device/CMakeLists.txt
++++ b/src/device/CMakeLists.txt
+@@ -72,7 +72,7 @@ target_link_libraries(device
+     ${HIDAPI_LIBRARIES}
+     cncrypto
+     ringct_basic
+-    wallet-crypto
++    monero-crypto
+     ${OPENSSL_CRYPTO_LIBRARIES}
+     ${Boost_SERIALIZATION_LIBRARY}
+   PRIVATE
+diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
+index 65db2615c..3ace310f6 100644
+--- 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/monero-0.17.1.7.ebuild b/net-p2p/monero/monero-0.17.1.7.ebuild
index a790abc7..5cfdcb4d 100644
--- a/net-p2p/monero/monero-0.17.1.7.ebuild
+++ b/net-p2p/monero/monero-0.17.1.7.ebuild
@@ -5,21 +5,16 @@ EAPI=7
 
 inherit cmake systemd
 
-MY_RANDOMX_REV="5ce5f4906c1eb166be980f6d83cc80f4112ffc2a"
-MY_SUPERCOP_REV="633500ad8c8759995049ccd022107d1fa8a1bbc9"
-
 DESCRIPTION="The secure, private, untraceable cryptocurrency"
 HOMEPAGE="https://github.com/monero-project/monero"
-SRC_URI="
-	https://github.com/monero-project/monero/archive/v${PV}.tar.gz -> ${P}.tar.gz
-	https://github.com/monero-project/supercop/archive/${MY_SUPERCOP_REV}.tar.gz -> ${PN}-supercop-${PV}.tar.gz
-"
+SRC_URI="https://github.com/monero-project/monero/archive/v${PV}.tar.gz -> ${P}.tar.gz"
 
 LICENSE="BSD MIT"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="+daemon libressl readline +tools +wallet-cli +wallet-rpc"
 REQUIRED_USE="|| ( daemon tools wallet-cli wallet-rpc )"
+RESTRICT="test"
 
 DEPEND="
 	acct-group/monero
@@ -28,6 +23,7 @@ DEPEND="
 	dev-libs/libsodium:=
 	dev-libs/randomx
 	dev-libs/rapidjson
+	dev-libs/supercop
 	net-dns/unbound:=[threads]
 	net-libs/czmq:=
 	net-libs/miniupnpc
@@ -38,24 +34,10 @@ DEPEND="
 RDEPEND="${DEPEND}"
 BDEPEND="virtual/pkgconfig"
 
-PATCHES=("${FILESDIR}/${P}-linkjobs.patch")
-
-src_unpack() {
-	unpack ${A}
-	rmdir "${S}"/external/supercop || die
-	mv "${WORKDIR}"/supercop-${MY_SUPERCOP_REV} "${S}"/external/supercop || die
-}
-
-src_prepare() {
-	cmake_src_prepare
-
-	sed -i 's:miniupnp/::' src/p2p/net_node.inl || die
-	sed -e 's/UPNP_LIBRARIES "libminiupnpc-static/UPNP_LIBRARIES "miniupnpc'/ \
-		-e '/libminiupnpc-static/d' \
-		-e '/\/miniupnpc/d' \
-		-e '/randomx/d' \
-		-i external/CMakeLists.txt || die
-}
+PATCHES=(
+	"${FILESDIR}/${P}-linkjobs.patch"
+	"${FILESDIR}/${P}-unbundle-dependencies.patch"
+)
 
 src_configure() {
 	local mycmakeargs=(


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
  2021-06-19 23:19 [gentoo-commits] repo/proj/guru:dev commit in: net-p2p/monero/files/, net-p2p/monero/ Theo Anderson
@ 2021-06-20  3:52 ` Theo Anderson
  0 siblings, 0 replies; 8+ messages in thread
From: Theo Anderson @ 2021-06-20  3:52 UTC (permalink / raw
  To: gentoo-commits

commit:     1b42af1f1038be9a2404bb01c49b6a74f765ab93
Author:     James Beddek <telans <AT> posteo <DOT> de>
AuthorDate: Sat Jun 19 23:19:13 2021 +0000
Commit:     Theo Anderson <telans <AT> posteo <DOT> de>
CommitDate: Sat Jun 19 23:19:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=1b42af1f

net-p2p/monero: fix build with boot-1.76

Signed-off-by: James Beddek <telans <AT> posteo.de>

 .../monero/files/monero-0.17.2.0-boost-176.patch   | 24 ++++++++++++++++++++++
 net-p2p/monero/monero-0.17.2.0.ebuild              |  7 +++++--
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/net-p2p/monero/files/monero-0.17.2.0-boost-176.patch b/net-p2p/monero/files/monero-0.17.2.0-boost-176.patch
new file mode 100644
index 000000000..07a584a39
--- /dev/null
+++ b/net-p2p/monero/files/monero-0.17.2.0-boost-176.patch
@@ -0,0 +1,24 @@
+From c28d2f7c110c0a2161fa02d6c20df94a60a41965 Mon Sep 17 00:00:00 2001
+From: loqs <loqs@users.noreply.github.com>
+Date: Sun, 23 May 2021 20:29:17 +0100
+Subject: [PATCH] Fix boost 1.76.0 compatibility
+
+Add missing header boost/mpl/contains.hpp
+monero-project/monero/issues/7728
+---
+ contrib/epee/include/storages/portable_storage.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/contrib/epee/include/storages/portable_storage.h b/contrib/epee/include/storages/portable_storage.h
+index 1e68605abf5..801bb2c3465 100644
+--- a/contrib/epee/include/storages/portable_storage.h
++++ b/contrib/epee/include/storages/portable_storage.h
+@@ -40,6 +40,8 @@
+ #include "span.h"
+ #include "int-util.h"
+ 
++#include <boost/mpl/contains.hpp>
++
+ namespace epee
+ {
+   namespace serialization

diff --git a/net-p2p/monero/monero-0.17.2.0.ebuild b/net-p2p/monero/monero-0.17.2.0.ebuild
index e3b4ccfae..6107e459f 100644
--- a/net-p2p/monero/monero-0.17.2.0.ebuild
+++ b/net-p2p/monero/monero-0.17.2.0.ebuild
@@ -26,7 +26,7 @@ RESTRICT="test"
 DEPEND="
 	acct-group/monero
 	acct-user/monero
-	<dev-libs/boost-1.76.0:=[nls,threads]
+	dev-libs/boost:=[nls,threads]
 	dev-libs/libsodium:=
 	dev-libs/openssl:=
 	dev-libs/randomx
@@ -40,7 +40,10 @@ DEPEND="
 RDEPEND="${DEPEND}"
 BDEPEND="virtual/pkgconfig"
 
-PATCHES=( "${FILESDIR}/${PN}-0.17.1.7-unbundle-dependencies.patch" )
+PATCHES=(
+	"${FILESDIR}/${PN}-0.17.1.7-unbundle-dependencies.patch"
+	"${FILESDIR}/${PN}-0.17.2.0-boost-176.patch"
+)
 
 src_configure() {
 	local mycmakeargs=(


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2022-10-04  2:54 Haelwenn Monnier
  0 siblings, 0 replies; 8+ messages in thread
From: Haelwenn Monnier @ 2022-10-04  2:54 UTC (permalink / raw
  To: gentoo-commits

commit:     3184a663a9b13d29c3e1bb71f71b0bfab7b19c71
Author:     Efe İzbudak <efe.izbudak <AT> metu <DOT> edu <DOT> tr>
AuthorDate: Fri Sep 30 21:26:49 2022 +0000
Commit:     Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Fri Sep 30 21:27:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=3184a663

net-p2p/monero: add 0.18.1.2

Signed-off-by: Efe İzbudak <efe.izbudak <AT> metu.edu.tr>

 net-p2p/monero/Manifest                            |   1 +
 .../monero-0.18.1.2-unbundle-dependencies.patch    | 102 ++++++++++++++++++
 net-p2p/monero/monero-0.18.1.2.ebuild              | 117 +++++++++++++++++++++
 3 files changed, 220 insertions(+)

diff --git a/net-p2p/monero/Manifest b/net-p2p/monero/Manifest
index 0e415c491..066f2d24e 100644
--- a/net-p2p/monero/Manifest
+++ b/net-p2p/monero/Manifest
@@ -4,3 +4,4 @@ DIST monero-0.17.3.0.tar.gz 10659302 BLAKE2B fe73172e490f119a3d3730e3c11afd386e5
 DIST monero-0.17.3.2.tar.gz 10685156 BLAKE2B f313ec0e5e224797448a43ad46d4e990174eec6cdceec6dc9a25d62f014a775172e103d05a33558404bd84a8443ba6ada0c27f81a3a83fe630d16cbad97602f5 SHA512 2d34e0525b2ca1d7bddb8ea51776b49fec4fb866a1c1239c347460ed3369af2f430be32da45666f16c369cebef099f285971c0e806d75d60354f195c5f93891d
 DIST monero-0.18.1.0.tar.gz 11600139 BLAKE2B dac1182e772b4163b2cc76ec83dc2cb5e91b251dab2185d4a2df6134780f05fadba2fc603964caab973ef6bc37dce1bfcb194c92ea4f843cfb953f9a5fc24378 SHA512 761f1bae4157ea05565c7459d1cd2a9316317068e3afc18a7215e4a949dee7eb58fe023cbd04c9fec0141d1f3dc33f526b2a187934b33d7aff2b55e47fad599c
 DIST monero-0.18.1.1.tar.gz 11609864 BLAKE2B 45591a856d251b6d11dc9eac987852fc413bea3fd035c330218cbb2226636ed4284b69e016a0e4ad71e2976fbe8bd6a4bc1d48cca05a45722add068c56ae0d9e SHA512 71c7d1940a31943b5a01236ffd7760907a3e63c50e31efa04cbd75f90d65401ed367efc1a9685a45638df7bdabd158ab61ee94398e3ca8e6c998aeb779db2066
+DIST monero-0.18.1.2.tar.gz 11609034 BLAKE2B 3186a1038e9dd8f204a506df28c526bf3e0e5f788ad2d6b512f02735162a479be3f46d309d4e6888f30f962d68ecaf269888c8c0b21a066cad78b3c06f8cfc83 SHA512 d112f34b2fe6720c324560dd523badb68f08d03183d4bbbe7e1aa95f641cde4a1c4fa4042f1d47f9920f799269cc9620150136ebbef6dd66fcd4df0336c0d7f3

diff --git a/net-p2p/monero/files/monero-0.18.1.2-unbundle-dependencies.patch b/net-p2p/monero/files/monero-0.18.1.2-unbundle-dependencies.patch
new file mode 100644
index 000000000..6cd7e7c3d
--- /dev/null
+++ b/net-p2p/monero/files/monero-0.18.1.2-unbundle-dependencies.patch
@@ -0,0 +1,102 @@
+--- 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/monero-0.18.1.2.ebuild b/net-p2p/monero/monero-0.18.1.2.ebuild
new file mode 100644
index 000000000..6c810793c
--- /dev/null
+++ b/net-p2p/monero/monero-0.18.1.2.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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 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:=[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= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.18.1.2-unbundle-dependencies.patch"
+)
+
+src_configure() {
+	local mycmakeargs=(
+		# TODO: Update CMake to install built libraries (help wanted)
+		-DBUILD_SHARED_LIBS=OFF
+		-DMANUAL_SUBMODULES=ON
+		-DUSE_DEVICE_TREZOR=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 (80 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
+}


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2024-11-19 11:32 Julien Roy
  0 siblings, 0 replies; 8+ messages in thread
From: Julien Roy @ 2024-11-19 11:32 UTC (permalink / raw
  To: gentoo-commits

commit:     6d02e592430d890798c9f23123bb9aa9675dbcf5
Author:     Sergey Alirzaev <l29ah <AT> riseup <DOT> net>
AuthorDate: Tue Nov 19 11:18:56 2024 +0000
Commit:     Julien Roy <julien <AT> jroy <DOT> ca>
CommitDate: Tue Nov 19 11:18:56 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6d02e592

net-p2p/monero: boost 1.8{5,6} support

Signed-off-by: Sergey Alirzaev <l29ah <AT> riseup.net>

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch dev
# Your branch is up to date with 'origin/dev'.
#
# Changes to be committed:
#	new file:   files/monero-0.18.3.4-boost-1.85.patch
#	modified:   monero-0.18.3.4-r1.ebuild
#

 .../monero/files/monero-0.18.3.4-boost-1.85.patch  | 585 +++++++++++++++++++++
 net-p2p/monero/monero-0.18.3.4-r1.ebuild           |   1 +
 2 files changed, 586 insertions(+)

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
new file mode 100644
index 000000000..1e4793bd1
--- /dev/null
+++ b/net-p2p/monero/files/monero-0.18.3.4-boost-1.85.patch
@@ -0,0 +1,585 @@
+From 65568d3a884857ce08d1170f5801a6891a5c187c Mon Sep 17 00:00:00 2001
+From: jeffro256 <jeffro256@tutanota.com>
+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/monero-0.18.3.4-r1.ebuild b/net-p2p/monero/monero-0.18.3.4-r1.ebuild
index bb6dec0e5..70cbb2770 100644
--- a/net-p2p/monero/monero-0.18.3.4-r1.ebuild
+++ b/net-p2p/monero/monero-0.18.3.4-r1.ebuild
@@ -48,6 +48,7 @@ BDEPEND="virtual/pkgconfig"
 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() {


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2025-06-03  8:50 David Roman
  0 siblings, 0 replies; 8+ messages in thread
From: David Roman @ 2025-06-03  8:50 UTC (permalink / raw
  To: gentoo-commits

commit:     7318f01c9fcb11bedf6be6fa9a2425bf9bf8e481
Author:     Filip Kobierski <fkobi <AT> pm <DOT> me>
AuthorDate: Mon Jun  2 15:13:22 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Mon Jun  2 15:13:22 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=7318f01c

net-p2p/monero: init.d swap `use net` to `after net`

Sorry for the slight mistake

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

 net-p2p/monero/files/monerod-0.18.4.0.initd                             | 2 +-
 net-p2p/monero/{monero-0.18.4.0-r2.ebuild => monero-0.18.4.0-r3.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/net-p2p/monero/files/monerod-0.18.4.0.initd b/net-p2p/monero/files/monerod-0.18.4.0.initd
index a066695285..4631771b5a 100644
--- a/net-p2p/monero/files/monerod-0.18.4.0.initd
+++ b/net-p2p/monero/files/monerod-0.18.4.0.initd
@@ -15,8 +15,8 @@ retry="SIGTERM/30/SIGKILL/5"
 
 
 depend() {
+    after net
     need localmount
-    use net
 }
 
 start_pre() {

diff --git a/net-p2p/monero/monero-0.18.4.0-r2.ebuild b/net-p2p/monero/monero-0.18.4.0-r3.ebuild
similarity index 100%
rename from net-p2p/monero/monero-0.18.4.0-r2.ebuild
rename to net-p2p/monero/monero-0.18.4.0-r3.ebuild


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2025-06-08  7:36 Viorel Munteanu
  0 siblings, 0 replies; 8+ messages in thread
From: Viorel Munteanu @ 2025-06-08  7:36 UTC (permalink / raw
  To: gentoo-commits

commit:     573a31586e499f0c83c51e379abda054a61e8e88
Author:     Filip Kobierski <fkobi <AT> pm <DOT> me>
AuthorDate: Sun Jun  8 00:15:39 2025 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
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 <jeffro256@tutanota.com>
-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
-}


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2025-07-18  9:35 David Roman
  0 siblings, 0 replies; 8+ messages in thread
From: David Roman @ 2025-07-18  9:35 UTC (permalink / raw
  To: gentoo-commits

commit:     d396308043c8d6a09187edad31d8537ef34f830b
Author:     Sergey Alirzaev <l29ah <AT> riseup <DOT> net>
AuthorDate: Thu Jul 17 21:35:12 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Thu Jul 17 21:35:12 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d3963080

net-p2p/monero: bump up to 0.18.4.1

Signed-off-by: Sergey Alirzaev <l29ah <AT> riseup.net>

 net-p2p/monero/Manifest                            |  2 +-
 net-p2p/monero/files/monero-0.18.4.0-cmake-4.patch | 22 ----------------------
 ...o-0.18.4.0-r5.ebuild => monero-0.18.4.1.ebuild} |  1 -
 net-p2p/monero/monero-9999.ebuild                  |  1 -
 4 files changed, 1 insertion(+), 25 deletions(-)

diff --git a/net-p2p/monero/Manifest b/net-p2p/monero/Manifest
index 2c51f3fcd3..908e6df46e 100644
--- a/net-p2p/monero/Manifest
+++ b/net-p2p/monero/Manifest
@@ -1 +1 @@
-DIST monero-0.18.4.0.tar.gz 14083573 BLAKE2B 6edd37cf89305dabddf04aa454a605f578276a924f703025b906612438de9dce12c854127b851ae0a71eb4b7aac6c9aa1bb7beb0d6ed311a55c19387117c2ba0 SHA512 6d17654a37d1a3aec37f641a58026a5f602e13836bdc50223ce6bf82ad9be9db2cf5abadd6b7bc963f4bfc0e18aa76298d89050686f6563d0567d2745e0512eb
+DIST monero-0.18.4.1.tar.gz 14092890 BLAKE2B 5f4e7c74a515c2715d77fa52818884ee923696c75a1e5629f28af35417d760aa1b082c512621f31c1d20889886d5b6a6c5db71b9bff13586afad98699f6afcde SHA512 1583eeffc0fb2f27798fc13a2695fa1410ce219eb8f35adc15ddbeaf035b3fa4a057cdc0cc96269cb5d261af710e7c4f8bb398db95ec727c267ba78bc3b84418

diff --git a/net-p2p/monero/files/monero-0.18.4.0-cmake-4.patch b/net-p2p/monero/files/monero-0.18.4.0-cmake-4.patch
deleted file mode 100644
index 3a97c82f86..0000000000
--- a/net-p2p/monero/files/monero-0.18.4.0-cmake-4.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 0d0a656618e396de7ff60368dde708ad9d45f866 Mon Sep 17 00:00:00 2001
-From: cyan <cyjan@mrcyjanek.net>
-Date: Tue, 1 Apr 2025 09:22:19 +0000
-Subject: [PATCH] build: set cmake_minimum_required(VERSION 3.5) consistently
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 37ad0a23e2c..46bd5eb1bb2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -219,7 +219,7 @@ function(forbid_undefined_symbols)
-     file(MAKE_DIRECTORY "${TEST_PROJECT}")
-     file(WRITE "${TEST_PROJECT}/CMakeLists.txt"
-       [=[
--cmake_minimum_required(VERSION 3.1)
-+cmake_minimum_required(VERSION 3.5)
- project(test)
- option(EXPECT_SUCCESS "" ON)
- file(WRITE "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }")

diff --git a/net-p2p/monero/monero-0.18.4.0-r5.ebuild b/net-p2p/monero/monero-0.18.4.1.ebuild
similarity index 98%
rename from net-p2p/monero/monero-0.18.4.0-r5.ebuild
rename to net-p2p/monero/monero-0.18.4.1.ebuild
index 84f85451a6..d9091f7aa1 100644
--- a/net-p2p/monero/monero-0.18.4.0-r5.ebuild
+++ b/net-p2p/monero/monero-0.18.4.1.ebuild
@@ -56,7 +56,6 @@ BDEPEND="virtual/pkgconfig"
 PATCHES=(
 	"${FILESDIR}"/${PN}-0.18.3.3-miniupnp-api-18.patch
 	"${FILESDIR}"/${PN}-0.18.4.0-unbundle-dependencies.patch
-	"${FILESDIR}"/${PN}-0.18.4.0-cmake-4.patch
 )
 
 src_prepare() {

diff --git a/net-p2p/monero/monero-9999.ebuild b/net-p2p/monero/monero-9999.ebuild
index 84f85451a6..d9091f7aa1 100644
--- a/net-p2p/monero/monero-9999.ebuild
+++ b/net-p2p/monero/monero-9999.ebuild
@@ -56,7 +56,6 @@ BDEPEND="virtual/pkgconfig"
 PATCHES=(
 	"${FILESDIR}"/${PN}-0.18.3.3-miniupnp-api-18.patch
 	"${FILESDIR}"/${PN}-0.18.4.0-unbundle-dependencies.patch
-	"${FILESDIR}"/${PN}-0.18.4.0-cmake-4.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/
@ 2025-08-25  8:44 David Roman
  0 siblings, 0 replies; 8+ messages in thread
From: David Roman @ 2025-08-25  8:44 UTC (permalink / raw
  To: gentoo-commits

commit:     c19cff63f84423899e3c00f38f5567054125ee1b
Author:     Adam Pimentel <adam.pimentel <AT> protonmail <DOT> com>
AuthorDate: Sun Aug 24 05:42:53 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Sun Aug 24 05:42:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=c19cff63

net-p2p/monero: make supercop optional, add ~ppc64 flag

Signed-off-by: Adam Pimentel <adam.pimentel <AT> protonmail.com>

 net-p2p/monero/files/monero-0.18.4.0-external-supercop.patch  | 11 +++++++++++
 .../monero/files/monero-0.18.4.0-unbundle-dependencies.patch  |  3 +--
 net-p2p/monero/monero-0.18.4.1.ebuild                         | 10 +++++++---
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/net-p2p/monero/files/monero-0.18.4.0-external-supercop.patch b/net-p2p/monero/files/monero-0.18.4.0-external-supercop.patch
new file mode 100644
index 0000000000..ddcd36e51f
--- /dev/null
+++ b/net-p2p/monero/files/monero-0.18.4.0-external-supercop.patch
@@ -0,0 +1,11 @@
+--- 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

diff --git a/net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch b/net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch
index 744f2da20b..fbef3d15af 100644
--- a/net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch
+++ b/net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch
@@ -77,12 +77,11 @@
    namespace wallet {
 --- a/src/device/CMakeLists.txt
 +++ b/src/device/CMakeLists.txt
-@@ -73,7 +73,7 @@
+@@ -73,7 +73,6 @@
      cncrypto
      cryptonote_format_utils_basic
      ringct_basic
 -    wallet-crypto
-+    monero-crypto
      ${OPENSSL_CRYPTO_LIBRARIES}
      ${Boost_SERIALIZATION_LIBRARY}
    PRIVATE

diff --git a/net-p2p/monero/monero-0.18.4.1.ebuild b/net-p2p/monero/monero-0.18.4.1.ebuild
index d9091f7aa1..95ea8164f9 100644
--- a/net-p2p/monero/monero-0.18.4.1.ebuild
+++ b/net-p2p/monero/monero-0.18.4.1.ebuild
@@ -16,12 +16,12 @@ if [[ ${PV} == 9999 ]]; then
 	EGIT_SUBMODULES=()
 else
 	SRC_URI="https://github.com/monero-project/monero/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-	KEYWORDS="~amd64 ~arm64 ~x86"
+	KEYWORDS="~amd64 ~arm64 ~x86 ~ppc64"
 fi
 
 LICENSE="BSD MIT"
 SLOT="0"
-IUSE="+daemon hw-wallet readline +tools +wallet-cli +wallet-rpc cpu_flags_x86_aes"
+IUSE="+daemon hw-wallet readline +tools +wallet-cli +wallet-rpc cpu_flags_x86_aes monero-supercop"
 REQUIRED_USE="|| ( daemon tools wallet-cli wallet-rpc )"
 RESTRICT="test"
 # Test requires python's requests, psutil, deepdiff which are packaged
@@ -35,7 +35,7 @@ DEPEND="
 	dev-libs/openssl:=
 	dev-libs/randomx
 	dev-libs/rapidjson
-	dev-libs/supercop
+	monero-supercop? ( dev-libs/supercop )
 	net-dns/unbound:=[threads]
 	net-libs/miniupnpc:=
 	net-libs/zeromq:=
@@ -58,6 +58,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-0.18.4.0-unbundle-dependencies.patch
 )
 
+
 src_prepare() {
 	# The build system does not recognize the release tarball (bug?)
 	# so we patch the GitVersion file.
@@ -67,6 +68,9 @@ src_prepare() {
 }
 
 src_configure() {
+	if use monero-supercop; then
+		PATCHES+=("${FILESDIR}"/${PN}-0.18.4.0-external-supercop.patch)
+	fi
 	local mycmakeargs=(
 		# TODO: Update CMake to install built libraries (help wanted)
 		-DBUILD_SHARED_LIBS=OFF


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-08-25  8:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-19 11:32 [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/ Julien Roy
  -- strict thread matches above, loose matches on Subject: below --
2025-08-25  8:44 David Roman
2025-07-18  9:35 David Roman
2025-06-08  7:36 Viorel Munteanu
2025-06-03  8:50 David Roman
2022-10-04  2:54 Haelwenn Monnier
2021-06-19 23:19 [gentoo-commits] repo/proj/guru:dev commit in: net-p2p/monero/files/, net-p2p/monero/ Theo Anderson
2021-06-20  3:52 ` [gentoo-commits] repo/proj/guru:master commit in: net-p2p/monero/, net-p2p/monero/files/ Theo Anderson
2020-12-29 10:58 Andrew Ammerlaan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox