aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/finance.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/finance.scm')
-rw-r--r--gnu/packages/finance.scm220
1 files changed, 182 insertions, 38 deletions
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index c93f641933..3ddaa76a4e 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)
@@ -36,6 +39,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dns)
@@ -48,6 +52,7 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
@@ -66,7 +71,7 @@
(define-public bitcoin-core
(package
(name "bitcoin-core")
- (version "0.15.1")
+ (version "0.16.1")
(source (origin
(method url-fetch)
(uri
@@ -74,7 +79,7 @@
version "/bitcoin-" version ".tar.gz"))
(sha256
(base32
- "1d22fgwdcn343kd95lh389hj417zwbmnhi29cij8n7wc0nz2vpil"))))
+ "1zkqp93yircd3pbxczxfnibkpq0sgcv5r7wg6d196b9pwgr9zd39"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -140,6 +145,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 +159,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 +173,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 +181,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 +191,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 +204,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 +284,7 @@ do so.")
(define-public electrum
(package
(name "electrum")
- (version "3.0.5")
+ (version "3.2.2")
(source
(origin
(method url-fetch)
@@ -283,7 +293,7 @@ do so.")
version ".tar.gz"))
(sha256
(base32
- "06z0a5p1jg93jialphslip8d72q9yg3651qqaf494gs3h9kw1sv1"))
+ "1fxaxlf5vm2zydj678ls3pazyriym188iwzk60kyk26cz2p3xk39"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -321,6 +331,37 @@ generation from a seed. Your secret keys are encrypted and are never sent to
other machines/servers. Electrum does not download the Bitcoin blockchain.")
(license license:expat)))
+(define-public electron-cash
+ (package
+ (inherit electrum)
+ (name "electron-cash")
+ (version "3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://electroncash.org/downloads/"
+ version
+ "/win-linux/ElectronCash-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1x487hyacdm1qhik1mhfimr4jwcwz7sgsbkh11awrb6j19sxdxym"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete the bundled dependencies.
+ (delete-file-recursively "packages")
+ #t))))
+ (home-page "https://electroncash.org/")
+ (synopsis "Bitcoin Cash wallet")
+ (description
+ "Electroncash is a lightweight Bitcoin Cash client, based on a client-server
+protocol. It supports Simple Payment Verification (SPV) and deterministic key
+generation from a seed. Your secret keys are encrypted and are never sent to
+other machines/servers. Electroncash does not download the Bitcoin Cash blockchain.")
+ (license license:expat)))
+
(define-public monero
;; This package bundles easylogging++ and lmdb.
;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
@@ -328,25 +369,18 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.11.1.0")
+ (version "0.12.3.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/monero-project/monero/archive/v"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/monero-project/monero")
+ (commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Delete bundled dependencies.
- (for-each
- delete-file-recursively
- '("external/miniupnpc" "external/rapidjson"
- "external/unbound"))
- #t))
+ (patches (search-patches "monero-use-system-miniupnpc.patch"))
(sha256
(base32
- "16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m"))))
+ "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@@ -356,15 +390,19 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(inputs
`(("bind" ,isc-bind)
("boost" ,boost)
+ ("zeromq" ,zeromq)
+ ("cppzmq" ,cppzmq)
("expat" ,expat)
+ ("libsodium" ,libsodium)
("libunwind" ,libunwind)
("lmdb" ,lmdb)
- ("miniupnpc" ,miniupnpc)
+ ("miniupnpc" ,monero-miniupnpc)
("openssl" ,openssl)
("rapidjson" ,rapidjson)
("unbound" ,unbound)))
(arguments
`(#:out-of-source? #t
+ #:build-type "release"
#:configure-flags '("-DBUILD_TESTS=ON"
,@(if (string=? "aarch64-linux" (%current-system))
'("-DARCH=armv8-a")
@@ -392,9 +430,8 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
#t))
(replace 'check
(lambda _
- (zero?
- (system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
- "test"))))
+ (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
+ "test")))
;; The excluded unit tests need network access
(add-after 'check 'unit-tests
(lambda _
@@ -407,10 +444,9 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
"DNSResolver.DNSSECFailure"
"DNSResolver.GetTXTRecord")
":")))
- (zero?
- (system* "tests/unit_tests/unit_tests"
- (string-append "--gtest_filter=-"
- excluded-unit-tests))))))
+ (invoke "tests/unit_tests/unit_tests"
+ (string-append "--gtest_filter=-"
+ excluded-unit-tests)))))
(add-after 'install 'install-blockchain-import-export
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -424,19 +460,20 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
Monero command line client and daemon.")
(license license:bsd-3)))
-(define-public monero-core
+(define-public monero-gui
(package
- (name "monero-core")
- (version "0.11.1.0")
+ (name "monero-gui")
+ (version "0.12.2.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/monero-project/monero-core/archive/v"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/monero-project/monero-gui")
+ (commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr"))))
+ "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@@ -483,7 +520,7 @@ Monero command line client and daemon.")
#t))
(replace 'build
(lambda _
- (zero? (system* "./build.sh"))))
+ (invoke "./build.sh")))
(add-after 'build 'fix-install-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "build/Makefile"
@@ -500,6 +537,9 @@ Monero command line client and daemon.")
Monero GUI client.")
(license license:bsd-3)))
+(define-public monero-core
+ (deprecated-package "monero-core" monero-gui))
+
(define-public python-trezor-agent
(package
(name "python-trezor-agent")
@@ -752,3 +792,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+)))