Initial port of haven-cli

main
Ahmed Kamal 2 years ago
parent 5f8cb21011
commit 2032969f0a
  1. 63
      pkgs/applications/blockchains/haven-cli/default.nix
  2. 79
      pkgs/applications/blockchains/haven-cli/use-system-libraries.patch
  3. 4
      pkgs/top-level/all-packages.nix

@ -0,0 +1,63 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch
, cmake, pkg-config
, boost, miniupnpc, openssl, unbound
, zeromq, pcsclite, readline, libsodium, hidapi
, randomx, rapidjson
, easyloggingpp
, CoreData, IOKit, PCSC
, trezorSupport ? true, libusb1, protobuf, python3
}:
stdenv.mkDerivation rec {
pname = "haven-cli";
version = "2.2.3";
src = fetchFromGitHub {
owner = "haven-protocol-org";
repo = "haven-main";
rev = "v${version}";
sha256 = "sha256-nBVLNT0jWIewr6MPDGwDqXoVtyFLyls1IEQraVoWDQ4=";
fetchSubmodules = true;
};
patches = [
./use-system-libraries.patch
];
postPatch = ''
# remove vendored libraries
rm -r external/{miniupnp,randomx,rapidjson,unbound}
# export patched source for haven-gui
cp -r . $source
'';
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
boost miniupnpc openssl unbound
zeromq pcsclite readline
libsodium hidapi randomx rapidjson
protobuf
readline easyloggingpp
]
++ lib.optionals trezorSupport [ libusb1 protobuf python3 ];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DUSE_DEVICE_TREZOR=ON"
"-DBUILD_GUI_DEPS=ON"
"-DReadline_ROOT_DIR=${readline.dev}"
"-DReadline_INCLUDE_DIR=${readline.dev}/include/readline"
"-DRandomX_ROOT_DIR=${randomx}"
] ++ lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
outputs = [ "out" "source" ];
meta = with lib; {
description = "Haven Protocol is the world's only network of private stable asset";
homepage = "https://havenprotocol.org/";
license = licenses.bsd3;
platforms = platforms.all;
maintainers = with maintainers; [ kim0 ];
};
}

@ -0,0 +1,79 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb71d2d..3a710a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -200,11 +200,11 @@ if(NOT MANUAL_SUBMODULES)
endfunction ()
message(STATUS "Checking submodules")
- check_submodule(external/miniupnp)
- check_submodule(external/unbound)
- check_submodule(external/rapidjson)
+ # check_submodule(external/miniupnp)
+ # check_submodule(external/unbound)
+ # check_submodule(external/rapidjson)
check_submodule(external/trezor-common)
- check_submodule(external/randomx)
+ # check_submodule(external/randomx)
endif()
endif()
@@ -300,7 +300,8 @@ endif()
# elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*")
# set(BSDI TRUE)
-include_directories(external/rapidjson/include external/easylogging++ src contrib/epee/include external)
+include_directories(external/easylogging++ src contrib/epee/include external)
+#include_directories(external/rapidjson/include external/easylogging++ src contrib/epee/include external)
if(APPLE)
include_directories(SYSTEM /usr/include/malloc)
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 71b165f..10189ce 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -37,19 +37,9 @@
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)
@@ -80,4 +70,3 @@ endif()
add_subdirectory(db_drivers)
add_subdirectory(easylogging++)
-add_subdirectory(randomx EXCLUDE_FROM_ALL)
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
index c626e22..be570ed 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"

@ -31047,6 +31047,10 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
};
haven-cli = callPackage ../applications/blockchains/haven-cli {
inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
};
monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui {
boost = boost17x;
};

Loading…
Cancel
Save