summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorJustin Veilleux <terramorpha@cock.li>2022-08-12 13:38:43 +0200
committerGuillaume Le Vaillant <glv@posteo.net>2022-08-12 17:43:17 +0200
commited4a3f17bf73d6a7e1d282924233498db79f7038 (patch)
treec26b4989f4720ee2a48c1724d0e132aba72ddecc /gnu
parent3650425b4689ff716ad244cb48283c9daf8df148 (diff)
downloadguix-ed4a3f17bf73d6a7e1d282924233498db79f7038.tar.gz
gnu: Add xmrig.
* gnu/packages/finance.scm (xmrig): New variable.

Co-authored-by: Guillaume Le Vaillant <glv@posteo.net>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/finance.scm58
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index f73dc052ed..9a5b8b1c20 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
 ;;; Copyright © 2022 Collin J. Doering <collin@rekahsoft.ca>
+;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -100,6 +101,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
@@ -2114,3 +2116,59 @@ analysis of financial market data.")
 format used by SWIFT.  It returns smart Python collections for statistics
 and manipulation.")
     (license license:bsd-3)))
+
+(define-public xmrig
+  (package
+    (name "xmrig")
+    (version "6.18.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xmrig/xmrig")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "1ncnfjpjwjdv29plyiam2nh01bfni49sgfi3qkijygi1450w71dx"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; TODO: Try to use system libraries instead of bundled ones in
+        ;; "src/3rdparty/". It requires changes to some "cmake/..." scripts
+        ;; and to some source files.
+        #~(substitute* "src/donate.h"
+            (("constexpr const int kDefaultDonateLevel = 1;")
+             "constexpr const int kDefaultDonateLevel = 0;")
+            (("constexpr const int kMinimumDonateLevel = 1;")
+             "constexpr const int kMinimumDonateLevel = 0;")))))
+    (build-system cmake-build-system)
+    (inputs
+     (list
+      `(,hwloc "lib")
+      libuv
+      openssl))
+    (arguments
+     (list
+      ;; There are no tests.
+      #:tests? #f
+      #:phases
+      #~(modify-phases
+         %standard-phases
+         (replace 'install
+           ;; There is no 'install' target, we must install xmrig manually
+           (lambda* (#:key #:allow-other-keys)
+             (install-file "xmrig"
+                           (string-append #$output "/bin")))))))
+    (home-page "https://xmrig.com/")
+    (synopsis "Monero miner")
+    (description
+     "XMRig is a high performance, cross platform RandomX, KawPow,
+CryptoNight, AstroBWT and GhostRider unified CPU/GPU miner and RandomX
+benchmark.
+
+Warning: upstream, by default, receives a percentage of the mining time.  This
+anti-functionality has been neutralised in Guix, but possibly not in all other
+distributions.
+
+Warning: this software, because of it's nature, has high energy consumption.
+Also, the energy expenses might be higher that the cryptocurrency gained by
+mining.")
+    (license license:gpl3+)))