summaryrefslogtreecommitdiff
path: root/repo/monero
diff options
context:
space:
mode:
Diffstat (limited to 'repo/monero')
-rw-r--r--repo/monero/easylogging.patch11
-rw-r--r--repo/monero/monero.xibuild42
-rw-r--r--repo/monero/system-miniupnpc.patch105
-rw-r--r--repo/monero/version-string.patch13
4 files changed, 171 insertions, 0 deletions
diff --git a/repo/monero/easylogging.patch b/repo/monero/easylogging.patch
new file mode 100644
index 0000000..3cddc78
--- /dev/null
+++ b/repo/monero/easylogging.patch
@@ -0,0 +1,11 @@
+--- a/external/easylogging++/easylogging++.h
++++ b/external/easylogging++/easylogging++.h
+@@ -221,7 +221,7 @@
+ # define ELPP_INTERNAL_INFO(lvl, msg)
+ #endif // (defined(ELPP_DEBUG_INFO))
+ #if (defined(ELPP_FEATURE_ALL)) || (defined(ELPP_FEATURE_CRASH_LOG))
+-# if (ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_OPENBSD && !ELPP_OS_NETBSD && !ELPP_OS_ANDROID && !ELPP_OS_EMSCRIPTEN)
++# if (__has_include(<execinfo.h>) && ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_OPENBSD && !ELPP_OS_NETBSD && !ELPP_OS_ANDROID && !ELPP_OS_EMSCRIPTEN)
+ # define ELPP_STACKTRACE 1
+ # else
+ # define ELPP_STACKTRACE 0
diff --git a/repo/monero/monero.xibuild b/repo/monero/monero.xibuild
new file mode 100644
index 0000000..06c09d7
--- /dev/null
+++ b/repo/monero/monero.xibuild
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+NAME="monero"
+DESC="Secure, private, untraceable cryptocurrency"
+
+MAKEDEPS=" boost cmake cppzmq hidapi libsodium miniupnpc openpgm openssl rapidjson readline unbound zeromq "
+
+PKG_VER=0.17.3.0
+_ver_randomx=ae8e98b681766f31d49ac562dd6974906156e07b
+_ver_supercop=633500ad8c8759995049ccd022107d1fa8a1bbc9
+SOURCE="https://github.com/monero-project/monero/archive/refs/tags/v$PKG_VER.tar.gz"
+
+ADDITIONAL="
+easylogging.patch
+system-miniupnpc.patch
+version-string.patch
+
+https://github.com/tevador/RandomX/archive/$_ver_randomx.tar.gz
+https://github.com/monero-project/supercop/archive/$_ver_supercop.tar.gz"
+
+
+prepare() {
+ apply_patches
+
+ rm -fr external/randomx external/supercop
+ ln -s $BUILD_ROOT/RandomX-$_ver_randomx external/randomx
+ ln -s $BUILD_ROOT/supercop-$_ver_supercop external/supercop
+}
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSTACK_TRACE=OFF \
+ -DMANUAL_SUBMODULES=1
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$PKG_DEST" cmake --install build
+}
+
diff --git a/repo/monero/system-miniupnpc.patch b/repo/monero/system-miniupnpc.patch
new file mode 100644
index 0000000..fc303fb
--- /dev/null
+++ b/repo/monero/system-miniupnpc.patch
@@ -0,0 +1,105 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -547,6 +547,14 @@
+ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
+ add_subdirectory(external)
+
++# Final setup for miniupnpc
++if(UPNP_STATIC OR IOS)
++ add_definitions("-DUPNP_STATIC")
++else()
++ add_definitions("-DUPNP_DYNAMIC")
++ include_directories(${UPNP_INCLUDE})
++endif()
++
+ # Final setup for libunbound
+ include_directories(${UNBOUND_INCLUDE})
+ link_directories(${UNBOUND_LIBRARY_DIRS})
+diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
+index 9b21705e..76340a22 100644
+--- a/src/p2p/net_node.inl
++++ b/src/p2p/net_node.inl
+@@ -61,9 +61,16 @@
+ #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>
++// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
++#ifdef UPNP_STATIC
++ #include <miniupnp/miniupnpc/miniupnpc.h>
++ #include <miniupnp/miniupnpc/upnpcommands.h>
++ #include <miniupnp/miniupnpc/upnperrors.h>
++#else
++ #include "miniupnpc.h"
++ #include "upnpcommands.h"
++ #include "upnperrors.h"
++#endif
+
+ #undef MONERO_DEFAULT_LOG_CATEGORY
+ #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
+--
+2.17.0
+
+--- a/external/CMakeLists.txt 2021-12-04 03:56:51.405517304 +0200
++++ b/external/CMakeLists.txt 2021-12-04 04:02:37.649484660 +0200
+@@ -34,24 +34,46 @@
+ # 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.
++if(NOT IOS)
++ find_package(Miniupnpc QUIET)
++endif()
+
+-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")
++# If we have the correct shared version and we're not building static, use it
++if(STATIC OR IOS)
++ set(USE_SHARED_MINIUPNPC false)
++elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
++ set(USE_SHARED_MINIUPNPC true)
+ endif()
++
++
++if(USE_SHARED_MINIUPNPC)
++ message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
++
++ set(UPNP_STATIC false PARENT_SCOPE)
++ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
++ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
++else()
++ if(STATIC)
++ message(STATUS "Using miniupnpc from local source tree for static build")
++ else()
++ message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
++ endif()
++ 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_STATIC true PARENT_SCOPE)
++ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
++endif()
+
+ find_package(Unbound)
+
diff --git a/repo/monero/version-string.patch b/repo/monero/version-string.patch
new file mode 100644
index 0000000..f64be9d
--- /dev/null
+++ b/repo/monero/version-string.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/Version.cmake b/cmake/Version.cmake
+index 3677e80..490de2c 100644
+--- a/cmake/Version.cmake
++++ b/cmake/Version.cmake
+@@ -32,7 +32,7 @@ function (write_static_version_header hash)
+ endfunction ()
+
+ find_package(Git QUIET)
+-if ("$Format:$" STREQUAL "")
++if ("$Format:$" STREQUAL "" OR NOT EXISTS .git)
+ # We're in a tarball; use hard-coded variables.
+ set(VERSION_IS_RELEASE "true")
+ write_version("release")