From 5d797b1469d3ed59dcd95cad89605ea9a9a31f1b Mon Sep 17 00:00:00 2001 From: Sergey Alirzaev Date: Mon, 31 Mar 2025 01:32:44 +0200 Subject: [PATCH] net-p2p/monero: bump to 0.18.4.0 Signed-off-by: Sergey Alirzaev --- net-p2p/monero/Manifest | 1 + ...onero-0.18.4.0-unbundle-dependencies.patch | 103 +++++++++++++++ net-p2p/monero/monero-0.18.4.0.ebuild | 123 ++++++++++++++++++ net-p2p/monero/monero-9999.ebuild | 2 +- 4 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch create mode 100644 net-p2p/monero/monero-0.18.4.0.ebuild diff --git a/net-p2p/monero/Manifest b/net-p2p/monero/Manifest index f9cccb695b..900f20ab05 100644 --- a/net-p2p/monero/Manifest +++ b/net-p2p/monero/Manifest @@ -1 +1,2 @@ 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.4.0-unbundle-dependencies.patch b/net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch new file mode 100644 index 0000000000..744f2da20b --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.4.0-unbundle-dependencies.patch @@ -0,0 +1,103 @@ +--- 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,22 +37,7 @@ + + find_package(Miniupnpc REQUIRED) + +-message(STATUS "Using in-tree miniupnpc") +-set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE) +-set(UPNPC_BUILD_SHARED OFF CACHE BOOL "Disable building shared library" 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 +-#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 +-#include +-#include ++#include ++#include ++#include + + #undef MONERO_DEFAULT_LOG_CATEGORY + #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p" diff --git a/net-p2p/monero/monero-0.18.4.0.ebuild b/net-p2p/monero/monero-0.18.4.0.ebuild new file mode 100644 index 0000000000..0a88c629d0 --- /dev/null +++ b/net-p2p/monero/monero-0.18.4.0.ebuild @@ -0,0 +1,123 @@ +# 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:=[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" + +PATCHES=( + "${FILESDIR}/${PN}-0.18.4.0-unbundle-dependencies.patch" + "${FILESDIR}/${PN}-0.18.3.3-miniupnp-api-18.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 (200 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 +} diff --git a/net-p2p/monero/monero-9999.ebuild b/net-p2p/monero/monero-9999.ebuild index bb6dec0e59..0a88c629d0 100644 --- a/net-p2p/monero/monero-9999.ebuild +++ b/net-p2p/monero/monero-9999.ebuild @@ -46,7 +46,7 @@ RDEPEND="${DEPEND}" BDEPEND="virtual/pkgconfig" PATCHES=( - "${FILESDIR}/${PN}-0.18.3.3-unbundle-dependencies.patch" + "${FILESDIR}/${PN}-0.18.4.0-unbundle-dependencies.patch" "${FILESDIR}/${PN}-0.18.3.3-miniupnp-api-18.patch" )