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.scm124
1 files changed, 118 insertions, 6 deletions
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index c93f641933..1d3e6a7a6a 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -9,6 +9,8 @@
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
+;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +31,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
@@ -140,6 +143,7 @@ line client and a client based on Qt.")
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
+                  ((guix build gnu-build-system) #:prefix gnu:)
                   (guix build utils)
                   (guix build emacs-utils))
        #:imported-modules (,@%cmake-build-system-modules
@@ -153,6 +157,10 @@ line client and a client based on Qt.")
          ,(string-append "-DUTFCPP_INCLUDE_DIR:PATH="
                          (assoc-ref %build-inputs "utfcpp")
                          "/include"))
+       ;; Skip failing test BaselineTest_cmd-org during the check phase.
+       ;; This is a known upstream issue. See
+       ;; https://github.com/ledger/ledger/issues/550
+       #:make-flags (list "ARGS=-E BaselineTest_cmd-org")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'install-examples
@@ -163,7 +171,7 @@ line client and a client based on Qt.")
                (install-file "test/input/demo.ledger" examples))
              #t))
          (add-after 'build 'build-doc
-           (lambda _ (zero? (system* "make" "doc"))))
+           (lambda _ (invoke "make" "doc")))
          (add-before 'check 'check-setup
            ;; One test fails if it can't set the timezone.
            (lambda* (#:key inputs #:allow-other-keys)
@@ -171,6 +179,7 @@ line client and a client based on Qt.")
                      (string-append (assoc-ref inputs "tzdata")
                                     "/share/zoneinfo"))
              #t))
+         (replace 'check (assoc-ref gnu:%standard-phases 'check))
          (add-after 'install 'relocate-elisp
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((site-dir (string-append (assoc-ref outputs "out")
@@ -180,8 +189,7 @@ line client and a client based on Qt.")
                     (dest-dir (string-append guix-dir "/ledger-mode")))
                (mkdir-p guix-dir)
                (rename-file orig-dir dest-dir)
-               (emacs-generate-autoloads ,name dest-dir))
-             #t)))))
+               (emacs-generate-autoloads ,name dest-dir)))))))
     (inputs
      `(("boost" ,boost)
        ("gmp" ,gmp)
@@ -194,7 +202,7 @@ line client and a client based on Qt.")
      `(("emacs" ,emacs-minimal)
        ("groff" ,groff)
        ("texinfo" ,texinfo)))
-    (home-page "http://ledger-cli.org/")
+    (home-page "https://ledger-cli.org/")
     (synopsis "Command-line double-entry accounting program")
     (description
      "Ledger is a powerful, double-entry accounting system that is
@@ -274,7 +282,7 @@ do so.")
 (define-public electrum
   (package
     (name "electrum")
-    (version "3.0.5")
+    (version "3.2.2")
     (source
      (origin
        (method url-fetch)
@@ -283,7 +291,7 @@ do so.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "06z0a5p1jg93jialphslip8d72q9yg3651qqaf494gs3h9kw1sv1"))
+         "1fxaxlf5vm2zydj678ls3pazyriym188iwzk60kyk26cz2p3xk39"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -752,3 +760,107 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
 
 (define-public python2-stdnum
   (package-with-python2 python-stdnum))
+
+(define-public python-duniterpy
+  (package
+    (name "python-duniterpy")
+    (version "0.43.2")
+    (source
+     (origin
+       (method git-fetch)
+       ;; Pypi's default URI is missing "requirements.txt" file.
+       (uri (git-reference
+             (url "https://github.com/duniter/duniter-python-api.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ch4f150k1p1l876pp08p5rxqhpv5xfbxdw6njcmr06hspv8v8x4"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Among 108 tests, a single one is failing: FAIL:
+         ;; test_from_pubkey.  Remove it.
+         (add-after 'unpack 'remove-failing-test
+           (lambda _
+             (delete-file "tests/documents/test_crc_pubkey.py")
+             #t)))))
+    (propagated-inputs
+     `(("python-aiohttp" ,python-aiohttp)
+       ("python-base58" ,python-base58)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-libnacl" ,python-libnacl)
+       ("python-pylibscrypt" ,python-pylibscrypt)
+       ("python-pypeg2" ,python-pypeg2)))
+    (home-page "https://github.com/duniter/duniter-python-api")
+    (synopsis "Python implementation of Duniter API")
+    (description "@code{duniterpy} is an implementation of
+@uref{https://github.com/duniter/duniter/, duniter} API. Its
+main features are:
+@itemize
+@item Supports Duniter's Basic Merkle API and protocol
+@item Asynchronous
+@item Duniter signing key
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public silkaj
+  (package
+    (name "silkaj")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.duniter.org/clients/python/silkaj.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0xy25lpgz04nxikjvxlnlckrc9xmsxyiz2qm0bsiid8cnbdqcn12"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       #:phases
+       (modify-phases %standard-phases
+         ;; The program is just a bunch of Python files in "src/" directory.
+         ;; Many phases are useless.  However, `python-build-system' correctly
+         ;; sets PYTHONPATH and patches Python scripts.
+         (delete 'configure)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share/silkaj"))
+                    (executable (string-append share "/silkaj.py"))
+                    (bin (string-append out "/bin")))
+               ;; Install data.
+               (copy-recursively "src" share)
+               ;; Install executable.
+               (mkdir-p bin)
+               (with-directory-excursion bin
+                 (symlink executable "silkaj")))
+             #t)))))
+    (inputs
+     `(("python-commandlines" ,python-commandlines)
+       ("python-ipaddress" ,python-ipaddress)
+       ("python-pyaes" ,python-pyaes)
+       ("python-pynacl" ,python-pynacl)
+       ("python-scrypt" ,python-scrypt)
+       ("python-tabulate" ,python-tabulate)))
+    (home-page "https://silkaj.duniter.org/")
+    (synopsis "Command line client for Duniter network")
+    (description "@code{Silkaj} is a command line client for the
+@uref{https://github.com/duniter/duniter/, Duniter} network.
+
+Its features are:
+@itemize
+@item information about currency,
+@item issuers difficulty to generate next block,
+@item network view of nodes,
+@item list of last issuers,
+@item send transactions,
+@item get account amount.
+@end itemize")
+    (license license:agpl3+)))