summary refs log tree commit diff
path: root/gnu/packages/finance.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/finance.scm')
-rw-r--r--gnu/packages/finance.scm175
1 files changed, 159 insertions, 16 deletions
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 4b5ab2924b..849f9aba99 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
-;;; Copyright © 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018, 2019, 2020, 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
@@ -30,6 +30,8 @@
 ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
 ;;; 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.
 ;;;
@@ -78,14 +80,16 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages emacs-xyz)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages gettext)
-  #:use-module (gnu packages gnome)
-  #:use-module (gnu packages golang)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages haskell-web)
@@ -98,6 +102,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)
@@ -278,14 +283,14 @@ Accounting.")
 (define-public homebank
   (package
     (name "homebank")
-    (version "5.5.5")
+    (version "5.5.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://homebank.free.fr/public/homebank-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0rwykjpv4w7bffyvx2j6py17nxw9jcbml7ma4is194i3npn0bkmy"))))
+                "1nn75wzk9h82zsakxng1v94nlg7hq3ssicvskl1m5hg4fa68w3j6"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      (list pkg-config intltool))
@@ -462,6 +467,37 @@ in ability, and easy to use.
 This package provides the Emacs mode.")
       (license license:gpl2+))))
 
+(define-public emacs-hledger-mode
+  (let ((commit "400bde42a8d2712af80cd7c773c9cdfbb63a515a")
+        (revision "1"))
+    (package
+      (name "emacs-hledger-mode")
+      (version (git-version "20220515" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/narendraj9/hledger-mode")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0xmcfpr3rxli1adwypg18npl8hb8ak5rg6a6i26inzzqja6vr897"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list emacs-popup
+             emacs-async
+             emacs-htmlize))
+      (arguments
+       '(#:include '("^[^/]+.el$")
+         #:exclude '()))
+      (home-page "https://github.com/narendraj9/hledger-mode")
+      (synopsis "Mode for writing journal entries for hledger")
+      (description
+       "This major mode for Emacs enables writing and managing hledger
+journal files.  It generates some useful reports along with some financial
+ratios that can help you keep a check on your financial health for users of
+the plaintext accounting system hledger.")
+      (license license:gpl3))))
+
 (define-public geierlein
   (package
     (name "geierlein")
@@ -590,7 +626,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
 (define-public electron-cash
   (package
     (name "electron-cash")
-    (version "4.2.10")
+    (version "4.2.11")
     (source
      (origin
        (method git-fetch)
@@ -599,7 +635,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0axpypq9byda61rp3sznrq24b24qxbfwk56j75qp06s1ackg0pcv"))))
+        (base32 "1g0xnb63c52l379zrqkfhxlkg1d2hf2dgjs2swspa0vah845r282"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -671,7 +707,7 @@ blockchain.")
   ;; the system's dynamically linked library.
   (package
     (name "monero")
-    (version "0.18.0.0")
+    (version "0.18.1.0")
     (source
      (origin
        (method git-fetch)
@@ -689,7 +725,7 @@ blockchain.")
             delete-file-recursively
             '("external/miniupnp" "external/rapidjson"))))
        (sha256
-        (base32 "1jq2v2dg50gl3cf9s61jssny5rraclxqj4cc4y0sl00ip8icj08v"))))
+        (base32 "18yj44pki7x8ir6wg02g1h6yxp1hnqb0nrx9x5dvv94rda48cy66"))))
     (build-system cmake-build-system)
     (native-inputs
      (list doxygen
@@ -776,7 +812,7 @@ the Monero command line client and daemon.")
 (define-public monero-gui
   (package
     (name "monero-gui")
-    (version "0.18.0.0")
+    (version "0.18.1.0")
     (source
      (origin
        (method git-fetch)
@@ -792,7 +828,7 @@ the Monero command line client and daemon.")
            ;; See the 'extract-monero-sources' phase.
            (delete-file-recursively "monero")))
        (sha256
-        (base32 "14rbw9803h3g7ld3d24vc3i9n55n09x13frkmd128xx5jw17v5sr"))))
+        (base32 "1z627jy9n6cwc9yv0w58fbhix4qnllk0q42ga75mhlawaz68j0qi"))))
     (build-system qt-build-system)
     (native-inputs
      `(,@(package-native-inputs monero)
@@ -801,6 +837,7 @@ the Monero command line client and daemon.")
      (modify-inputs (package-inputs monero)
        (append libgcrypt
                monero
+               p2pool
                qtbase-5
                qtdeclarative-5
                qtgraphicaleffects
@@ -834,6 +871,17 @@ the Monero command line client and daemon.")
                       (string-append
                        "set(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -fPIC\")\n"
                        all)))))
+               (add-after 'unpack 'fix-p2pool-path
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "src/p2pool/P2PoolManager.cpp"
+                     ;; Location for files created by P2Pool
+                     (("m_p2poolPath = QApplication::applicationDirPath\\(\\);")
+                      "m_p2poolPath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);")
+                     ;; Location of p2pool program
+                     (("m_p2pool = m_p2poolPath \\+ \"/p2pool\";")
+                      (string-append "m_p2pool = \""
+                                     (search-input-file inputs "/bin/p2pool")
+                                     "\";")))))
                (replace 'install
                  (lambda _
                    (let ((bin (string-append #$output "/bin")))
@@ -1236,13 +1284,13 @@ Luhn and family of ISO/IEC 7064 check digit algorithms.")
 (define-public python-duniterpy
   (package
     (name "python-duniterpy")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "duniterpy" version))
        (sha256
-        (base32 "13kp2ph7fb1cdkx1y6j2h8q33fj2akc104l77ng52cy4v8jic9nz"))))
+        (base32 "18i5bqz58vjp740pxb4wb4ixg1g2d73cwi0d8gp85fmj5p8f2gx7"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
@@ -1255,13 +1303,11 @@ Luhn and family of ISO/IEC 7064 check digit algorithms.")
                         (("mnemonic>=0\\.19,<0.20")
                          "mnemonic>=0.19")))))))
     (propagated-inputs
-     (list python-aiohttp
-           python-attrs
+     (list python-attrs
            python-base58
            python-jsonschema
            python-libnacl
            python-pyaes
-           python-pylibscrypt
            python-graphql-core
            python-mnemonic
            python-websocket-client
@@ -2081,3 +2127,100 @@ 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+)))
+
+(define-public p2pool
+  (package
+    (name "p2pool")
+    (version "2.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/SChernykh/p2pool")
+             (commit (string-append "v" version))
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "19pn7axj96yvza2x7678rs79c2vgmhl8d7f9ki72v2n6l2630fw8"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(for-each delete-file-recursively
+                    '("external/lib"
+                      "external/src/cppzmq"
+                      "external/src/curl"
+                      "external/src/libuv"
+                      "external/src/libzmq"
+                      "external/src/rapidjson")))))
+    (build-system cmake-build-system)
+    (inputs
+     (list cppzmq curl gss libuv rapidjson zeromq))
+    (arguments
+     (list
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'install
+            (lambda _
+              (install-file "p2pool" (string-append #$output "/bin")))))))
+    (home-page "https://p2pool.io/")
+    (synopsis "Decentralized Monero mining pool")
+    (description "Monero P2Pool is a peer-to-peer Monero mining pool.  P2Pool
+combines the advantages of pool and solo mining; you still fully control your
+Monero node and what it mines, but you get frequent payouts like on a regular
+pool.")
+    (license license:gpl3)))