summary refs log tree commit diff
path: root/pkgs/applications/blockchains/monero-cli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/blockchains/monero-cli/default.nix')
-rw-r--r--pkgs/applications/blockchains/monero-cli/default.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/applications/blockchains/monero-cli/default.nix b/pkgs/applications/blockchains/monero-cli/default.nix
new file mode 100644
index 00000000000..975253741b0
--- /dev/null
+++ b/pkgs/applications/blockchains/monero-cli/default.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch
+, cmake, pkg-config
+, boost, miniupnpc, openssl, unbound
+, zeromq, pcsclite, readline, libsodium, hidapi
+, randomx, rapidjson
+, CoreData, IOKit, PCSC
+, trezorSupport ? true, libusb1, protobuf, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "monero-cli";
+  version = "0.17.2.3";
+
+  src = fetchFromGitHub {
+    owner = "monero-project";
+    repo = "monero";
+    rev = "v${version}";
+    sha256 = "0nax991fshfh51grhh2ryfrwwws35k16gzl1l3niva28zff2xmq6";
+    fetchSubmodules = true;
+  };
+
+  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
+  ] ++ 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}"
+    "-DRandomX_ROOT_DIR=${randomx}"
+  ] ++ lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+  outputs = [ "out" "source" ];
+
+  meta = with lib; {
+    description = "Private, secure, untraceable currency";
+    homepage    = "https://getmonero.org/";
+    license     = licenses.bsd3;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+}