diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
commit | 62614cbef7da005c1eda8c9400160f6bcd6546b8 (patch) | |
tree | c2630f69080637987b68acb1ee8676d2681fe304 /pkgs/applications/blockchains/monero | |
parent | d9c82ed3044c72cecf01c6ea042489d30914577c (diff) | |
parent | e24069138dfec3ef94f211f1da005bb5395adc11 (diff) | |
download | nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.gz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.bz2 nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.lz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.xz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.zst nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.zip |
Merge branch 'nixpkgs-update' into master
Diffstat (limited to 'pkgs/applications/blockchains/monero')
-rw-r--r-- | pkgs/applications/blockchains/monero/default.nix | 40 | ||||
-rw-r--r-- | pkgs/applications/blockchains/monero/use-system-libraries.patch | 69 |
2 files changed, 96 insertions, 13 deletions
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix index f1186564119..7dd2e569021 100644 --- a/pkgs/applications/blockchains/monero/default.nix +++ b/pkgs/applications/blockchains/monero/default.nix @@ -1,46 +1,60 @@ -{ stdenv, fetchFromGitHub -, cmake, pkgconfig +{ lib, stdenv, fetchFromGitHub, fetchpatch +, cmake, pkg-config , boost, miniupnpc, openssl, unbound , zeromq, pcsclite, readline, libsodium, hidapi -, protobuf, randomx, rapidjson, libusb-compat-0_1 +, randomx, rapidjson , CoreData, IOKit, PCSC +, trezorSupport ? true, libusb1, protobuf, python3 }: -assert stdenv.isDarwin -> IOKit != null; - stdenv.mkDerivation rec { pname = "monero"; - version = "0.16.0.3"; + version = "0.17.2.0"; src = fetchFromGitHub { owner = "monero-project"; repo = "monero"; rev = "v${version}"; - sha256 = "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33"; + sha256 = "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6"; fetchSubmodules = true; }; - nativeBuildInputs = [ cmake pkgconfig ]; + patches = [ + ./use-system-libraries.patch + ]; + + postPatch = '' + # remove vendored libraries + rm -r external/{miniupnp,randomx,rapidjson,unbound} + # export patched source for monero-gui + cp -r . $source + ''; + + nativeBuildInputs = [ cmake pkg-config ]; 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 + ] ++ lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ] + ++ lib.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}" + ] ++ lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF"; + + outputs = [ "out" "source" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Private, secure, untraceable currency"; homepage = "https://getmonero.org/"; license = licenses.bsd3; platforms = platforms.all; - maintainers = with maintainers; [ ehmry rnhmjoj ]; + maintainers = with maintainers; [ rnhmjoj ]; }; } diff --git a/pkgs/applications/blockchains/monero/use-system-libraries.patch b/pkgs/applications/blockchains/monero/use-system-libraries.patch new file mode 100644 index 00000000000..57e2a2e9a69 --- /dev/null +++ b/pkgs/applications/blockchains/monero/use-system-libraries.patch @@ -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" |