diff --git a/net-p2p/monero-cli/Makefile b/net-p2p/monero-cli/Makefile index 64d574fe563b..cc530c46e908 100644 --- a/net-p2p/monero-cli/Makefile +++ b/net-p2p/monero-cli/Makefile @@ -1,107 +1,94 @@ PORTNAME= monero-cli DISTVERSIONPREFIX= v -DISTVERSION= 0.18.4.0 -PORTREVISION= 3 +DISTVERSION= 0.18.4.3 CATEGORIES= net-p2p finance MAINTAINER= alex.perechnev@gmail.com COMMENT= Private, secure, untraceable, decentralised digital currency (CLI) WWW= https://getmonero.org/ LICENSE= BSD3CLAUSE BROKEN_SSL= libressl BROKEN_aarch64= fails to compile: uses unavailable HWCAP_AES and getauxval BUILD_DEPENDS= ${LOCALBASE}/include/rapidjson/document.h:devel/rapidjson \ ${LOCALBASE}/include/zmq.hpp:net/cppzmq LIB_DEPENDS= \ libboost_chrono.so:devel/boost-libs \ libboost_date_time.so:devel/boost-libs \ libboost_filesystem.so:devel/boost-libs \ + libboost_locale.so:devel/boost-libs \ libboost_program_options.so:devel/boost-libs \ - libboost_regex.so:devel/boost-libs \ libboost_serialization.so:devel/boost-libs \ libboost_thread.so:devel/boost-libs \ libminiupnpc.so:net/miniupnpc \ libnorm.so:net/norm \ libpgm.so:net/openpgm \ libsodium.so:security/libsodium \ libunbound.so:dns/unbound \ libzmq.so:net/libzmq4 -USES= cmake compiler:c++11-lib pkgconfig readline ssl +USES= cmake compiler:c++14-lang pkgconfig readline ssl USE_GITHUB= yes .if defined(PKGNAMESUFFIX) GIT_COMMIT= ${PKGNAMESUFFIX:C/-git-//} .else -GIT_COMMIT= ${DISTVERSIONPREFIX}${PORTVERSION} +GIT_COMMIT= ${DISTVERSIONPREFIX}${DISTVERSION} .endif GH_TUPLE= monero-project:monero:${GIT_COMMIT} \ monero-project:supercop:633500ad8c875999:ext1/external/supercop \ - tevador:RandomX:85c527a62301b7b8be89d941:ext2/external/randomx \ + tevador:RandomX:102f8acf90a7649ada410de5:ext2/external/randomx \ trezor:trezor-common:bff7fdfe436c727982c:ext3/external/trezor-common CFLAGS+= -D_WANT_SEMUN OPTIONS_DEFINE= DOXYGEN NATIVE DOXYGEN_BUILD_DEPENDS= dot:graphics/graphviz \ doxygen:devel/doxygen DOXYGEN_CMAKE_BOOL= BUILD_DOCUMENTATION NATIVE_CMAKE_ON= -DARCH=native NATIVE_CMAKE_OFF= -DARCH=default .include # On FreeBSD 12.x the default ld(1) is LLVM's ld which needs an explicit -m option # when linking without any input .o on the command line, like: # /usr/bin/ld -melf_amd64 -r -b binary -o blocksdat.o blocks.dat # See Bug 226996 - net-p2p/monero-cli: fails to link with lld as the system linker # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226996 -.if ${ARCH} == aarch64 -LD_EMULATION= aarch64elf -.elif ${ARCH} == amd64 -LD_EMULATION= elf_amd64 -.elif ${ARCH} == i386 -LD_EMULATION= elf_i386_fbsd -.elif ${ARCH} == powerpc -LD_EMULATION= elf32ppc -.elif ${ARCH} == powerpc64 -LD_EMULATION= elf64ppc -.elif ${ARCH} == powerpc64le -LD_EMULATION= elf64lppc -.endif +LD_EMULATION= ${ARCH:S|aarch64|aarch64elf|:S|amd64|elf_amd64|:C|armv[67]|armelf|:S|i386|elf_i386_fbsd|:S|powerpc64|elf64ppc|:S|powerpc64le|elf64lppc|:C|powerpc(spe)*|elf32ppc_fbsd|:S|riscv64|elf64lriscv|} CMAKE_ARGS+= -DLD_RAW_FLAGS:STRING=-m${LD_EMULATION} # keep in sync with all platforms where libunwind is available -.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == powerpc || ${ARCH} == powerpc64 || ${ARCH} == powerpc64le +.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH:Marmv?} || ${ARCH} == i386 || ${ARCH} == powerpc || ${ARCH:Mpowerpc64*} LIB_DEPENDS+= libunwind.so:devel/libunwind .else CMAKE_ARGS+= -DSTACK_TRACE:BOOL=OFF .endif CMAKE_ARGS+= -DMANUAL_SUBMODULES:BOOL=ON USE_RC_SUBR= monerod USERS= monero GROUPS= monero PLIST_FILES= \ bin/monero-blockchain-ancestry \ bin/monero-blockchain-depth \ bin/monero-blockchain-export \ bin/monero-blockchain-import \ bin/monero-blockchain-mark-spent-outputs \ bin/monero-blockchain-prune \ bin/monero-blockchain-prune-known-spent-data \ bin/monero-blockchain-stats \ bin/monero-blockchain-usage \ bin/monero-gen-ssl-cert \ bin/monero-gen-trusted-multisig \ bin/monero-wallet-cli \ bin/monero-wallet-rpc \ bin/monerod .include diff --git a/net-p2p/monero-cli/distinfo b/net-p2p/monero-cli/distinfo index a73d26c810dd..6dd66c47c9a1 100644 --- a/net-p2p/monero-cli/distinfo +++ b/net-p2p/monero-cli/distinfo @@ -1,9 +1,9 @@ -TIMESTAMP = 1743767535 -SHA256 (monero-project-monero-v0.18.4.0_GH0.tar.gz) = 2ad22dfcd3766c1cc80ccf83ba06f701305ff25c25b737ca6fbdf843ca6960d3 -SIZE (monero-project-monero-v0.18.4.0_GH0.tar.gz) = 14083573 +TIMESTAMP = 1760289212 +SHA256 (monero-project-monero-v0.18.4.3_GH0.tar.gz) = fdec15d2b5c40f70aa4115aae8839ea9a247e3186c73f2d854432c7badafc939 +SIZE (monero-project-monero-v0.18.4.3_GH0.tar.gz) = 14105403 SHA256 (monero-project-supercop-633500ad8c875999_GH0.tar.gz) = 19861f74bfc2cc0b61a49bf0ff2da5c793432d31e8677b23455a4229dcb6435b SIZE (monero-project-supercop-633500ad8c875999_GH0.tar.gz) = 346190 -SHA256 (tevador-RandomX-85c527a62301b7b8be89d941_GH0.tar.gz) = f21ada9d84387061f9d93d2fb4314c4eb136ee916d6fd168c0fcba24fb6bfbbb -SIZE (tevador-RandomX-85c527a62301b7b8be89d941_GH0.tar.gz) = 164353 +SHA256 (tevador-RandomX-102f8acf90a7649ada410de5_GH0.tar.gz) = 9a81ebe53e8d61e2fd81df10e96232a22bcc38b9e5c948e8450f5fcb74131c52 +SIZE (tevador-RandomX-102f8acf90a7649ada410de5_GH0.tar.gz) = 181318 SHA256 (trezor-trezor-common-bff7fdfe436c727982c_GH0.tar.gz) = 298338e9924437677be76546929c64cda2bd8b04dbd2c3b533cdcf1291f903a0 SIZE (trezor-trezor-common-bff7fdfe436c727982c_GH0.tar.gz) = 1327776 diff --git a/net-p2p/monero-cli/files/patch-cmake_Version.cmake b/net-p2p/monero-cli/files/patch-cmake_Version.cmake index b2c7b81faa61..b703036dcd71 100644 --- a/net-p2p/monero-cli/files/patch-cmake_Version.cmake +++ b/net-p2p/monero-cli/files/patch-cmake_Version.cmake @@ -1,11 +1,11 @@ ---- cmake/Version.cmake.orig 2018-06-01 14:10:23.694883000 UTC -+++ cmake/Version.cmake 2018-06-01 14:10:35.450366000 UTC -@@ -32,7 +32,7 @@ +--- cmake/Version.cmake.orig 2025-10-07 19:25:41 UTC ++++ cmake/Version.cmake +@@ -32,7 +32,7 @@ find_package(Git QUIET) endfunction () find_package(Git QUIET) -if ("$Format:$" STREQUAL "") +if (TRUE) # We're in a tarball; use hard-coded variables. - write_static_version_header("release") - elseif (GIT_FOUND OR Git_FOUND) + set(VERSION_IS_RELEASE "true") + write_version("release") diff --git a/net-p2p/monero-cli/files/patch-external_CMakeLists.txt b/net-p2p/monero-cli/files/patch-external_CMakeLists.txt index 583a3d867128..1ee00b929281 100644 --- a/net-p2p/monero-cli/files/patch-external_CMakeLists.txt +++ b/net-p2p/monero-cli/files/patch-external_CMakeLists.txt @@ -1,52 +1,52 @@ ---- external/CMakeLists.txt.orig 2021-12-09 16:37:10.161405000 +0100 -+++ external/CMakeLists.txt 2021-12-09 16:36:54.211336000 +0100 -@@ -31,27 +31,30 @@ +--- external/CMakeLists.txt.orig 2025-10-07 19:25:41 UTC ++++ external/CMakeLists.txt +@@ -31,28 +31,31 @@ # This is broken up into two parts: first we check for miniupnp, compile it if we can't # find it, and thereafter we check for libunbound, and compile it if we can't find it. -# We always compile if we are building statically to reduce static dependency issues... -# ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with -# others. 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() +if(NOT MINIUPNPC_FOUND OR STATIC) + 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 "libminiupnpc-static" PARENT_SCOPE) +else() + message(STATUS "Found miniupnpc shared library (${MINIUPNP_LIBRARY})") + set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE) + set(UPNP_INCLUDE_DIR ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE) +endif() find_package(Unbound) diff --git a/net-p2p/monero-cli/files/patch-src_common_stack__trace.cpp b/net-p2p/monero-cli/files/patch-src_common_stack__trace.cpp index 6ec68141f87d..1e4112591eb0 100644 --- a/net-p2p/monero-cli/files/patch-src_common_stack__trace.cpp +++ b/net-p2p/monero-cli/files/patch-src_common_stack__trace.cpp @@ -1,18 +1,11 @@ ---- src/common/stack_trace.cpp.orig 2019-11-04 14:13:39 UTC +--- src/common/stack_trace.cpp.orig 2025-10-07 19:25:41 UTC +++ src/common/stack_trace.cpp -@@ -26,13 +26,14 @@ +@@ -26,7 +26,7 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#if !defined __GNUC__ || defined __MINGW32__ || defined __MINGW64__ || defined __ANDROID__ +#if !defined __GNUC__ || defined __MINGW32__ || defined __MINGW64__ || defined __ANDROID__ || defined __FreeBSD__ #define USE_UNWIND #else #define ELPP_FEATURE_CRASH_LOG 1 - #endif - #include "easylogging++/easylogging++.h" - -+#include - #include - #ifdef USE_UNWIND - #define UNW_LOCAL_ONLY diff --git a/net-p2p/monero-cli/files/patch-src_p2p_net__node.inl b/net-p2p/monero-cli/files/patch-src_p2p_net__node.inl index b2414132714d..62eeec1dbb39 100644 --- a/net-p2p/monero-cli/files/patch-src_p2p_net__node.inl +++ b/net-p2p/monero-cli/files/patch-src_p2p_net__node.inl @@ -1,64 +1,64 @@ ---- src/p2p/net_node.inl.orig 2023-10-02 19:28:11 UTC +--- src/p2p/net_node.inl.orig 2025-10-07 19:25:41 UTC +++ 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" -@@ -2989,7 +2989,11 @@ namespace nodetool +@@ -3090,7 +3090,11 @@ namespace nodetool UPNPUrls urls; IGDdatas igdData; char lanAddress[64]; +#if MINIUPNPC_API_VERSION >= 18 + result = UPNP_GetValidIGD(deviceList, &urls, &igdData, lanAddress, sizeof lanAddress, NULL, 0); +#else result = UPNP_GetValidIGD(deviceList, &urls, &igdData, lanAddress, sizeof lanAddress); +#endif freeUPNPDevlist(deviceList); if (result > 0) { if (result == 1) { -@@ -3057,10 +3061,18 @@ namespace nodetool +@@ -3158,10 +3162,18 @@ namespace nodetool UPNPUrls urls; IGDdatas igdData; char lanAddress[64]; +#if MINIUPNPC_API_VERSION >= 18 + result = UPNP_GetValidIGD(deviceList, &urls, &igdData, lanAddress, sizeof lanAddress, NULL, 0); +#else result = UPNP_GetValidIGD(deviceList, &urls, &igdData, lanAddress, sizeof lanAddress); +#endif freeUPNPDevlist(deviceList); if (result > 0) { +#if MINIUPNPC_API_VERSION >= 18 + if ((result == 1) || (result == 2)) { +#else if (result == 1) { +#endif std::ostringstream portString; portString << port; -@@ -3071,10 +3083,17 @@ namespace nodetool +@@ -3172,10 +3184,17 @@ namespace nodetool } else { MLOG_GREEN(el::Level::Info, "Deleted IGD port mapping."); } +#if MINIUPNPC_API_VERSION >= 18 + } else if (result == 3) { + MWARNING("IGD was found but reported as not connected."); + } else if (result == 4) { + MWARNING("UPnP device was found but not recognized as IGD."); +#else } else if (result == 2) { MWARNING("IGD was found but reported as not connected."); } else if (result == 3) { MWARNING("UPnP device was found but not recognized as IGD."); +#endif } else { MWARNING("UPNP_GetValidIGD returned an unknown result code."); } diff --git a/net-p2p/monero-cli/files/patch-src_wallet_api_CMakeLists.txt b/net-p2p/monero-cli/files/patch-src_wallet_api_CMakeLists.txt index 814be825002d..9df8c37bd3b2 100644 --- a/net-p2p/monero-cli/files/patch-src_wallet_api_CMakeLists.txt +++ b/net-p2p/monero-cli/files/patch-src_wallet_api_CMakeLists.txt @@ -1,9 +1,9 @@ ---- src/wallet/api/CMakeLists.txt.orig 2018-03-26 15:45:58 UTC +--- src/wallet/api/CMakeLists.txt.orig 2025-10-07 19:25:41 UTC +++ src/wallet/api/CMakeLists.txt -@@ -87,6 +87,3 @@ if(IOS) +@@ -90,6 +90,3 @@ endif() else() set(lib_folder lib) endif() - -install(FILES ${wallet_api_headers} - DESTINATION include/wallet/api)