monero: force use of system libraries
This commit is contained in:
parent
e40ede1821
commit
cc90474581
2 changed files with 89 additions and 4 deletions
|
@ -2,11 +2,18 @@
|
|||
, cmake, pkgconfig
|
||||
, boost, miniupnpc, openssl, unbound
|
||||
, zeromq, pcsclite, readline, libsodium, hidapi
|
||||
, protobuf, randomx, rapidjson, libusb-compat-0_1
|
||||
, randomx, rapidjson
|
||||
, CoreData, IOKit, PCSC
|
||||
, trezorSupport ? true
|
||||
, libusb1 ? null
|
||||
, protobuf ? null
|
||||
, python3 ? null
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
assert stdenv.isDarwin -> IOKit != null;
|
||||
assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "monero";
|
||||
|
@ -20,21 +27,30 @@ stdenv.mkDerivation rec {
|
|||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [ ./use-system-libraries.patch ];
|
||||
|
||||
postPatch = ''
|
||||
# remove vendored libraries
|
||||
rm -r external/{miniupnp,randomx,rapidjson,unbound}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
||||
buildInputs = [
|
||||
boost miniupnpc openssl unbound
|
||||
zeromq pcsclite readline
|
||||
libsodium hidapi randomx rapidjson
|
||||
protobuf libusb-compat-0_1
|
||||
] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
|
||||
protobuf
|
||||
] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ]
|
||||
++ optionals trezorSupport [ libusb1 protobuf python3 ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DUSE_DEVICE_TREZOR=ON"
|
||||
"-DBUILD_GUI_DEPS=ON"
|
||||
"-DReadline_ROOT_DIR=${readline.dev}"
|
||||
] ++ stdenv.lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
|
||||
"-DRandomX_ROOT_DIR=${randomx}"
|
||||
] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Private, secure, untraceable currency";
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
|
||||
index a8916a7d0..39ec7747b 100644
|
||||
--- a/external/CMakeLists.txt
|
||||
+++ b/external/CMakeLists.txt
|
||||
@@ -37,34 +37,16 @@
|
||||
|
||||
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_STATIC false PARENT_SCOPE)
|
||||
+set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
|
||||
+set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
|
||||
|
||||
find_package(Unbound)
|
||||
|
||||
if(NOT UNBOUND_INCLUDE_DIR OR STATIC)
|
||||
- # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered.
|
||||
- # unbound has config tests which used OpenSSL libraries, so -ldl may need to
|
||||
- # be set in this case.
|
||||
- # The unbound CMakeLists.txt can set it, since it's also needed for the
|
||||
- # static OpenSSL libraries set up there after with target_link_libraries.
|
||||
- add_subdirectory(unbound)
|
||||
-
|
||||
- set(UNBOUND_STATIC true PARENT_SCOPE)
|
||||
- set(UNBOUND_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/unbound/libunbound" PARENT_SCOPE)
|
||||
- set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE)
|
||||
- set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE)
|
||||
+ set(UNBOUND_STATIC false PARENT_SCOPE)
|
||||
+ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
|
||||
+ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
|
||||
else()
|
||||
message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}")
|
||||
if(UNBOUND_LIBRARIES)
|
||||
@@ -81,4 +63,5 @@ endif()
|
||||
add_subdirectory(db_drivers)
|
||||
add_subdirectory(easylogging++)
|
||||
add_subdirectory(qrcodegen)
|
||||
-add_subdirectory(randomx EXCLUDE_FROM_ALL)
|
||||
+
|
||||
+find_library(RANDOMX_LIBRARIES NAMES RandomX)
|
||||
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
|
||||
index 175741146..088b582f7 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"
|
Loading…
Reference in a new issue