gnu: Add xmrig.

* gnu/packages/finance.scm (xmrig): New variable.

Co-authored-by: Guillaume Le Vaillant <glv@posteo.net>
This commit is contained in:
Justin Veilleux 2022-08-12 13:38:43 +02:00 committed by Guillaume Le Vaillant
parent 3650425b46
commit ed4a3f17bf
No known key found for this signature in database
GPG Key ID: 6BE8208ADF21FE3F

View File

@ -31,6 +31,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 Collin J. Doering <collin@rekahsoft.ca> ;;; Copyright © 2022 Collin J. Doering <collin@rekahsoft.ca>
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -100,6 +101,7 @@
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking) #: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 format used by SWIFT. It returns smart Python collections for statistics
and manipulation.") and manipulation.")
(license license:bsd-3))) (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+)))