summaryrefslogtreecommitdiff
path: root/gnu/packages/finance.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/finance.scm')
-rw-r--r--gnu/packages/finance.scm217
1 files changed, 205 insertions, 12 deletions
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 43eda97f1a..c31b87ec19 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -13,9 +13,11 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
+;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,6 +41,8 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix build-system emacs)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system go)
@@ -238,11 +242,11 @@ and dynamically with report tools based on filtering and graphical charts.")
("libedit" ,libedit)
("mpfr" ,mpfr)
("python" ,python-2)
- ("tzdata" ,tzdata)
("utfcpp" ,utfcpp)))
(native-inputs
`(("groff" ,groff)
- ("texinfo" ,texinfo)))
+ ("texinfo" ,texinfo)
+ ("tzdata" ,tzdata-for-tests)))
(home-page "https://ledger-cli.org/")
(synopsis "Command-line double-entry accounting program")
(description
@@ -387,11 +391,11 @@ This package provides the Emacs mode.")
(synopsis "Free Elster client, for sending Germany VAT declarations")
(description
"Geierlein is a free Elster client, i.e. an application that
-allows to send VAT declarations to Germany's fiscal authorities.
+sends VAT declarations to Germany's fiscal authorities.
Currently it is *not* possible to send returns that are due annually
(especially the income tax return) since the fiscal authority doesn't
-allow to do that off the ERiC library (which is proprietary however).
+allow doing that off the ERiC library (which is proprietary however).
It's not clear at the moment whether one day it will be possible to
do so.")
(license license:agpl3+)))
@@ -744,9 +748,6 @@ the Monero command line client and daemon.")
the 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")
@@ -1049,13 +1050,13 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(define-public python-duniterpy
(package
(name "python-duniterpy")
- (version "0.56.0")
+ (version "0.57.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "duniterpy" version))
(sha256
- (base32 "1h8d8cnr6k5sw4cqy8r82zy4ldzpvn4nlk2221lz2haqq7xm4s5z"))))
+ (base32 "0rw2c7r9gcqhymp82gbk1ky45zqbypsi2q5x4vdwjc6g00kh7h6l"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests fail with: "ModuleNotFoundError: No module named
@@ -1165,10 +1166,37 @@ information.")
(home-page "https://grisbi.org")
(license license:gpl2+)))
+(define-public trezord-udev-rules
+ (let ((commit "bff7fdfe436c727982cc553bdfb29a9021b423b0")
+ (revision "0"))
+ (package
+ (name "trezord-udev-rules")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trezor/trezor-common.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "14mrirrn68if7ja6qdk9qlxs1hv0f21vrxy5ncnms0gx9iwakp2l"))
+ (file-name (git-file-name name version))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("./udev/51-trezor.rules" "lib/udev/rules.d/"))))
+ (home-page "https://github.com/trezor/trezor-common")
+ (synopsis "Udev rules for trezord")
+ (description
+ "This contains the udev rules for trezord. This will let a user run
+trezord as a regular user instead of needing to it run as root.")
+ (license license:lgpl3+))))
+
(define-public trezord
(package
(name "trezord")
- (version "2.0.17")
+ (version "2.0.29")
(source
(origin
(method git-fetch)
@@ -1177,7 +1205,7 @@ information.")
(commit (string-append "v" version))))
(sha256
(base32
- "0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7"))
+ "1ks1fa0027s3xp0z6qp0dxmayvrb4dwwscfhbx7da0khp153f2cp"))
(file-name (git-file-name name version))))
(build-system go-build-system)
(arguments
@@ -1401,3 +1429,168 @@ entity management.")
electronic cash system. This package provides a command line client and
a Qt GUI.")
(license license:expat)))
+
+(define-public fulcrum
+ (package
+ (name "fulcrum")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v"
+ version "/fulcrum-v" version ".tar.gz"))
+ (sha256
+ (base32 "1xywwgsdhkiblv6la0pfhvn2s9q8vnz6pjg35647rlwzi6ybf0ak"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Call qmake instead of configure to create a Makefile.
+ (replace 'configure
+ (lambda _
+ (invoke
+ "qmake"
+ (string-append "PREFIX=" %output)
+ "features="))))))
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (inputs
+ `(("python" ,python)
+ ("qtbase" ,qtbase)
+ ("rocksdb" ,rocksdb)
+ ("zlib" ,zlib)))
+ (home-page "https://gitlab.com/FloweeTheHub/fulcrum/")
+ (synopsis "Fast and nimble SPV server for Bitcoin Cash")
+ (description
+ "Flowee Fulcrum is a server that is the back-end for @acronym{SPV,
+Simplified Payment Verification} wallets, it provides the full API for those
+walets in a fast and small server. The full data is stored in a full node,
+like Flowee the Hub, which Fulcrum connects to over RPC.")
+ (license license:gpl3+)))
+
+(define-public flowee
+ (package
+ (name "flowee")
+ (version "2020.03.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://gitlab.com/FloweeTheHub/thehub/-/archive/"
+ version "/thehub-" version ".tar.gz"))
+ (sha256
+ (base32 "1m8wfwxljvd2gqpfj1w37xky4isa3h9a7g57cnf3l4r90r4bxj47"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-Dbuild_tests=ON" "-Denable_gui=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'make-qt-deterministic
+ (lambda _
+ ;; Make Qt deterministic.
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+ #t))
+ (add-before 'configure 'disable-black-box
+ ;; the black-box testing runs full hubs and lets them interact.
+ ;; this is more fragile and a slow machine, or low memory machine, may
+ ;; make the tests timeout and fail. We just disable them here.
+ (lambda _
+ (substitute* "testing/CMakeLists.txt"
+ (("test_api") ""))
+ #t))
+ (add-after 'configure 'set-build-info
+ ;; Their genbuild.sh to generate a build.h fails in guix (no .git dir) .
+ ;; Its purpose is to write the tag name in the build.h file. We do that
+ ;; here instead.
+ (lambda _
+ (with-output-to-file "include/build.h"
+ (lambda _
+ (display
+ (string-append "#define BUILD_DESC " "\"", version "\""))))))
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "make" "check" "-C" "testing"))))))
+ (inputs
+ `(("boost" ,boost)
+ ("gmp" ,gmp)
+ ("libevent" ,libevent)
+ ("miniupnpc" ,miniupnpc)
+ ("openssl" ,openssl)
+ ("qtbase" ,qtbase)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)
+ ("util-linux" ,util-linux))) ; provides the hexdump command for tests
+ (home-page "https://flowee.org")
+ (synopsis "Flowee infrastructure tools and services")
+ (description
+ "Flowee packages all tier-1 applications and services from the Flowee group.
+This includes components like The Hub and Indexer which and various others
+that allows you to run services and through them access the Bitcoin Cash networks.")
+ (license license:gpl3+)))
+
+
+(define-public beancount
+ (package
+ (name "beancount")
+ (version "2.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "beancount" version))
+ (sha256
+ (base32
+ "0pcfl2rx2ng06i4f9izdpnlnb1k0rdzsckbzzn4cn4ixfzyssm0m"))
+ (patches (search-patches "beancount-disable-googleapis-fonts.patch"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; Says test is missing, not sure why
+ #:phases
+ (modify-phases %standard-phases
+ ;; Not importing the googleapis package for now
+ (add-after 'unpack 'ignore-googleapis
+ (lambda _
+ (substitute* "setup.py"
+ (("'google-api-python-client',") ""))
+ #t)))))
+ (inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-bottle" ,python-bottle)
+ ("python-chardet" ,python-chardet)
+ ("python-dateutil" ,python-dateutil)
+ ("python-lxml" ,python-lxml)
+ ("python-magic" ,python-magic)
+ ("python-ply" ,python-ply)
+ ("python-requests" ,python-requests)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "http://furius.ca/beancount")
+ (synopsis "Command-line double-entry accounting tool")
+ (description
+ "Beancount is a double-entry bookkeeping computer language that lets you
+define financial transaction records in a text file, read them in memory,
+generate a variety of reports from them, and provides a web interface.")
+ (license license:gpl2)))
+
+;; The beancount source ships with elisp in a subdirectory
+(define-public emacs-beancount
+ (package
+ (inherit beancount)
+ (name "emacs-beancount")
+ (build-system emacs-build-system)
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'chdir-emacs
+ (lambda _
+ (chdir "editors/emacs")
+ #t)))))
+ (inputs '())
+ (native-inputs '())
+ (synopsis "Emacs mode for beancount")
+ (description
+ "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))