gnu: OpenBLAS: Update to 0.3.7.
[jackhill/guix/guix.git] / gnu / packages / finance.scm
CommitLineData
20c6b9da 1;;; GNU Guix --- Functional package management for GNU
fe7fa353 2;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
136ff9a2 3;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
d3699b31 4;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
cb0866c3 5;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
9475fd92 6;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
8514662b 7;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
14e09e90 8;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
9859800f 9;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
5424f9bc 10;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
3da86c52 11;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
8f4d15f1 12;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
948e888d 13;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
fc54da1d 14;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
90bb244f 15;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
01b37d0f 16;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
20c6b9da
AE
17;;;
18;;; This file is part of GNU Guix.
19;;;
20;;; GNU Guix is free software; you can redistribute it and/or modify it
21;;; under the terms of the GNU General Public License as published by
22;;; the Free Software Foundation; either version 3 of the License, or (at
23;;; your option) any later version.
24;;;
25;;; GNU Guix is distributed in the hope that it will be useful, but
26;;; WITHOUT ANY WARRANTY; without even the implied warranty of
27;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28;;; GNU General Public License for more details.
29;;;
30;;; You should have received a copy of the GNU General Public License
31;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
32
33(define-module (gnu packages finance)
fa4f95a7
CB
34 #:use-module ((guix licenses) #:prefix license:)
35 #:use-module (guix packages)
36 #:use-module (guix download)
730553d7 37 #:use-module (guix git-download)
fa4f95a7
CB
38 #:use-module (guix build-system gnu)
39 #:use-module (guix build-system cmake)
40 #:use-module (guix build-system python)
90bb244f 41 #:use-module (guix build-system glib-or-gtk)
01b37d0f 42 #:use-module (guix build-system go)
90bb244f 43 #:use-module (guix utils)
5424f9bc 44 #:use-module (gnu packages)
fa4f95a7
CB
45 #:use-module (gnu packages base)
46 #:use-module (gnu packages boost)
47 #:use-module (gnu packages check)
fc54da1d 48 #:use-module (gnu packages compression)
0a551443 49 #:use-module (gnu packages crypto)
fa4f95a7
CB
50 #:use-module (gnu packages databases)
51 #:use-module (gnu packages documentation)
52 #:use-module (gnu packages dns)
53 #:use-module (gnu packages emacs)
255d1bbe 54 #:use-module (gnu packages dbm)
90bb244f
TLC
55 #:use-module (gnu packages gnome)
56 #:use-module (gnu packages glib)
df724c9c 57 #:use-module (gnu packages gnupg)
fa4f95a7
CB
58 #:use-module (gnu packages graphviz)
59 #:use-module (gnu packages groff)
90bb244f 60 #:use-module (gnu packages gtk)
fa4f95a7
CB
61 #:use-module (gnu packages libedit)
62 #:use-module (gnu packages libevent)
63 #:use-module (gnu packages libunwind)
96f5e2e9 64 #:use-module (gnu packages libusb)
fa4f95a7
CB
65 #:use-module (gnu packages linux)
66 #:use-module (gnu packages multiprecision)
0a551443 67 #:use-module (gnu packages networking)
fa4f95a7
CB
68 #:use-module (gnu packages pkg-config)
69 #:use-module (gnu packages protobuf)
70 #:use-module (gnu packages python)
cc6f4912 71 #:use-module (gnu packages python-crypto)
589e3f4e 72 #:use-module (gnu packages python-web)
44d10b1f 73 #:use-module (gnu packages python-xyz)
fa4f95a7 74 #:use-module (gnu packages qt)
1d0865c1 75 #:use-module (gnu packages readline)
9d0c291e 76 #:use-module (gnu packages sphinx)
fa4f95a7
CB
77 #:use-module (gnu packages texinfo)
78 #:use-module (gnu packages textutils)
79 #:use-module (gnu packages tls)
80 #:use-module (gnu packages upnp)
fc54da1d 81 #:use-module (gnu packages version-control)
fa4f95a7
CB
82 #:use-module (gnu packages web)
83 #:use-module (gnu packages xml)
84 #:use-module (gnu packages gnuzilla))
20c6b9da
AE
85
86(define-public bitcoin-core
87 (package
88 (name "bitcoin-core")
bcfc54ff 89 (version "0.18.0")
20c6b9da
AE
90 (source (origin
91 (method url-fetch)
92 (uri
0a59cc6e 93 (string-append "https://bitcoincore.org/bin/bitcoin-core-"
14ea30e4 94 version "/bitcoin-" version ".tar.gz"))
20c6b9da
AE
95 (sha256
96 (base32
bcfc54ff 97 "0ps0vw9iknz1b1sx74rabd1yhlxvwbd0aimjzn9hlqkvw286hkjy"))))
20c6b9da
AE
98 (build-system gnu-build-system)
99 (native-inputs
100 `(("pkg-config" ,pkg-config)
e49e74f5 101 ("python" ,python) ; for the tests
0193812a
MB
102 ("util-linux" ,util-linux) ; provides the hexdump command for tests
103 ("qttools" ,qttools)))
20c6b9da 104 (inputs
bcfc54ff 105 `(("bdb" ,bdb-4.8) ; Bitcoin Core requires bdb 4.8 for compatibility
20c6b9da 106 ("boost" ,boost)
14ea30e4 107 ("libevent" ,libevent)
20c6b9da
AE
108 ("miniupnpc" ,miniupnpc)
109 ("openssl" ,openssl)
110 ("protobuf" ,protobuf)
0193812a 111 ("qtbase" ,qtbase)))
20c6b9da
AE
112 (arguments
113 `(#:configure-flags
114 (list
20c6b9da
AE
115 ;; Boost is not found unless specified manually.
116 (string-append "--with-boost="
0193812a
MB
117 (assoc-ref %build-inputs "boost"))
118 ;; XXX: The configure script looks up Qt paths by
119 ;; `pkg-config --variable=host_bins Qt5Core`, which fails to pick
120 ;; up executables residing in 'qttools', so we specify them here.
121 (string-append "ac_cv_path_LRELEASE="
122 (assoc-ref %build-inputs "qttools")
123 "/bin/lrelease")
124 (string-append "ac_cv_path_LUPDATE="
125 (assoc-ref %build-inputs "qttools")
126 "/bin/lupdate"))
20c6b9da
AE
127 #:phases
128 (modify-phases %standard-phases
99629e5a
CD
129 (add-before 'configure 'make-qt-deterministic
130 (lambda _
131 ;; Make Qt deterministic.
132 (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
133 #t))
20c6b9da
AE
134 (add-before 'check 'set-home
135 (lambda _
0e9600cb 136 (setenv "HOME" (getenv "TMPDIR")) ; Tests write to $HOME.
bcfc54ff
CD
137 #t))
138 (add-after 'check 'check-functional
139 (lambda _
140 (invoke "python3" "./test/functional/test_runner.py"
141 (string-append "--jobs=" (number->string (parallel-job-count))))
0e9600cb 142 #t)))))
20c6b9da
AE
143 (home-page "https://bitcoin.org/en/")
144 (synopsis "Bitcoin peer-to-peer client")
145 (description
146 "Bitcoin is a digital currency that enables instant payments to anyone
147anywhere in the world. It uses peer-to-peer technology to operate without
148central authority: managing transactions and issuing money are carried out
149collectively by the network. Bitcoin Core is the reference implementation
150of the bitcoin protocol. This package provides the Bitcoin Core command
151line client and a client based on Qt.")
152 (license license:expat)))
d3699b31
AG
153
154(define-public ledger
155 (package
156 (name "ledger")
9859800f 157 (version "3.1.3")
8b7ac58c
TGR
158 (source
159 (origin
160 (method git-fetch)
161 (uri (git-reference
162 (url "https://github.com/ledger/ledger.git")
163 (commit (string-append "v" version))))
164 (file-name (git-file-name name version))
165 (sha256
9859800f 166 (base32 "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3"))))
d3699b31
AG
167 (build-system cmake-build-system)
168 (arguments
f90ed028 169 `(#:configure-flags
d3699b31
AG
170 `("-DBUILD_DOCS:BOOL=ON"
171 "-DBUILD_WEB_DOCS:BOOL=ON"
d3699b31 172 "-DUSE_PYTHON:BOOL=ON"
f90ed028 173 "-DCMAKE_INSTALL_LIBDIR:PATH=lib")
d3699b31
AG
174 #:phases
175 (modify-phases %standard-phases
176 (add-before 'configure 'install-examples
177 (lambda* (#:key outputs #:allow-other-keys)
178 (let ((examples (string-append (assoc-ref outputs "out")
179 "/share/doc/ledger/examples")))
180 (install-file "test/input/sample.dat" examples)
181 (install-file "test/input/demo.ledger" examples))
182 #t))
183 (add-after 'build 'build-doc
1f3c4ba8 184 (lambda _ (invoke "make" "doc")))
d3699b31
AG
185 (add-before 'check 'check-setup
186 ;; One test fails if it can't set the timezone.
187 (lambda* (#:key inputs #:allow-other-keys)
188 (setenv "TZDIR"
189 (string-append (assoc-ref inputs "tzdata")
190 "/share/zoneinfo"))
f90ed028
RW
191 ;; Skip failing test BaselineTest_cmd-org.
192 ;; This is a known upstream issue. See
193 ;; https://github.com/ledger/ledger/issues/550
194 (setenv "ARGS" "-E BaselineTest_cmd-org")
195 #t)))))
d3699b31
AG
196 (inputs
197 `(("boost" ,boost)
198 ("gmp" ,gmp)
199 ("libedit" ,libedit)
200 ("mpfr" ,mpfr)
201 ("python" ,python-2)
202 ("tzdata" ,tzdata)
203 ("utfcpp" ,utfcpp)))
204 (native-inputs
f90ed028 205 `(("groff" ,groff)
d3699b31 206 ("texinfo" ,texinfo)))
b53a0c88 207 (home-page "https://ledger-cli.org/")
d3699b31
AG
208 (synopsis "Command-line double-entry accounting program")
209 (description
210 "Ledger is a powerful, double-entry accounting system that is
211accessed from the UNIX command-line. This may put off some users, since
212there is no flashy UI, but for those who want unparalleled reporting
213access to their data there are few alternatives.
214
215Ledger uses text files for input. It reads the files and generates
216reports; there is no other database or stored state. To use Ledger,
217you create a file of your account names and transactions, run from the
218command line with some options to specify input and requested reports, and
219get output. The output is generally plain text, though you could generate
220a graph or html instead. Ledger is simple in concept, surprisingly rich
221in ability, and easy to use.")
222 ;; There are some extra licenses in files which do not presently get
223 ;; installed when you build this package. Different versions of the GPL
224 ;; are used in the contrib and python subdirectories. The bundled version
225 ;; of utfcpp is under the Boost 1.0 license. Also the file
226 ;; `tools/update_copyright_year` has an Expat license.
227 (license (list license:bsd-3
228 license:asl2.0 ; src/strptime.cc
229 (license:non-copyleft
230 "file://src/wcwidth.cc"
f90ed028 231 "See src/wcwidth.cc in the distribution.")))))
cb0866c3 232
0df201c0
RW
233(define-public emacs-ledger-mode
234 ;; There have been no new releases since 2016.
235 (let ((commit "253a20dc62e137ed0ed8e1dd8614ecba116610ea")
236 (revision "1"))
237 (package
238 (name "emacs-ledger-mode")
239 (version (git-version "3.1.1" revision commit))
240 (source
241 (origin
242 (method git-fetch)
243 (uri (git-reference
244 (url "https://github.com/ledger/ledger-mode.git")
245 (commit commit)))
246 (file-name (git-file-name name version))
247 (sha256
248 (base32 "06wrgkqpgvk17vibrk2qikdlqn8y63jg86marp1wgmram92mb3jk"))))
249 (build-system cmake-build-system)
250 (arguments
251 `(#:modules ((guix build cmake-build-system)
252 (guix build utils)
253 (guix build emacs-utils))
254 #:imported-modules (,@%cmake-build-system-modules
255 (guix build emacs-utils))
256 #:tests? #f ; there are none
257 #:phases
258 (modify-phases %standard-phases
1c0dd730
PN
259 (add-before 'build 'patch-path
260 (lambda* (#:key inputs #:allow-other-keys)
261 (let ((ledger (assoc-ref inputs "ledger")))
262 (make-file-writable "ledger-exec.el")
263 (emacs-substitute-variables "ledger-exec.el"
264 ("ledger-binary-path" (string-append ledger "/bin/ledger"))))
265 #t))
0df201c0
RW
266 (add-after 'build 'build-doc
267 (lambda* (#:key outputs #:allow-other-keys)
268 (let ((target (string-append (assoc-ref outputs "out")
269 "/share/info")))
270 (mkdir-p target)
271 (invoke "makeinfo" "-o" target
272 "../source/doc/ledger-mode.texi"))
273 #t))
274 (add-after 'install 'relocate-elisp
275 (lambda* (#:key outputs #:allow-other-keys)
276 (let* ((site-dir (string-append (assoc-ref outputs "out")
277 "/share/emacs/site-lisp"))
278 (guix-dir (string-append site-dir "/guix.d"))
279 (orig-dir (string-append site-dir "/ledger-mode"))
280 (dest-dir (string-append guix-dir "/ledger-mode")))
281 (mkdir-p guix-dir)
282 (rename-file orig-dir dest-dir)
283 (emacs-generate-autoloads ,name dest-dir)
284 #t))))))
1c0dd730
PN
285 (inputs
286 `(("ledger" ,ledger)))
0df201c0
RW
287 (native-inputs
288 `(("emacs-minimal" ,emacs-minimal)
289 ("texinfo" ,texinfo)))
290 (home-page "https://ledger-cli.org/")
291 (synopsis "Command-line double-entry accounting program")
292 (description
293 "Ledger is a powerful, double-entry accounting system that is
294accessed from the UNIX command-line. This may put off some users, since
295there is no flashy UI, but for those who want unparalleled reporting
296access to their data there are few alternatives.
297
298Ledger uses text files for input. It reads the files and generates
299reports; there is no other database or stored state. To use Ledger,
300you create a file of your account names and transactions, run from the
301command line with some options to specify input and requested reports, and
302get output. The output is generally plain text, though you could generate
303a graph or html instead. Ledger is simple in concept, surprisingly rich
304in ability, and easy to use.
305
306This package provides the Emacs mode.")
307 (license license:gpl2+))))
308
cb0866c3
HG
309(define-public geierlein
310 (package
311 (name "geierlein")
1c21e734 312 (version "0.9.13")
cb0866c3
HG
313 (source
314 (origin
1fd71120
TGR
315 (method git-fetch)
316 (uri (git-reference
317 (url "https://github.com/stesie/geierlein.git")
318 (commit (string-append "V" version))))
319 (file-name (git-file-name name version))
cb0866c3 320 (sha256
1fd71120 321 (base32 "00zpwr3lk2vdmd60fgdwdk0xxs52wvnm19ln2m75yfphydvkglic"))))
cb0866c3
HG
322 (build-system gnu-build-system)
323 (arguments
1fd71120 324 `(#:tests? #f ; would require npm, python and a lot more
cb0866c3
HG
325 #:phases
326 (modify-phases %standard-phases
1c21e734 327 (delete 'configure) ; no configure script
cb0866c3
HG
328 (add-after 'unpack 'override-target-directory-and-tool-paths
329 (lambda* (#:key inputs outputs #:allow-other-keys)
330 (substitute* "Makefile"
331 (("prefix := .*")
332 (string-append "prefix := " (assoc-ref outputs "out") "\n"))
333 ;; Required for tests, unused for now:
334 ;;(("PYTHON := .*")
335 ;; (string-append (which "python") "\n")))
336 (("INSTALL := .*")
337 (string-append "INSTALL := " (which "install") "\n")))
338 (substitute* "bin/xgeierlein.in"
339 ;; Use icecat as XULRUNNER
340 (("^for search ")
341 (string-append "XULRUNNER=" (which "icecat") "\n"
342 "for search ")))
343 #t)))))
344 (inputs
345 `(("icecat" ,icecat)))
1e41bb1b 346 (home-page "https://stesie.github.io/geierlein/")
cb0866c3
HG
347 (synopsis "Free Elster client, for sending Germany VAT declarations")
348 (description
349 "Geierlein is a free Elster client, i.e. an application that
350allows to send VAT declarations to Germany's fiscal authorities.
351
352Currently it is *not* possible to send returns that are due annually
353(especially the income tax return) since the fiscal authority doesn't
354allow to do that off the ERiC library (which is proprietary however).
355It's not clear at the moment whether one day it will be possible to
356do so.")
357 (license license:agpl3+)))
9475fd92
CZ
358
359(define-public electrum
360 (package
361 (name "electrum")
fae0a777 362 (version "3.3.8")
9475fd92
CZ
363 (source
364 (origin
365 (method url-fetch)
366 (uri (string-append "https://download.electrum.org/"
367 version "/Electrum-"
368 version ".tar.gz"))
369 (sha256
fae0a777 370 (base32 "1g00cj1pmckd4xis8r032wmraiv3vd3zc803hnyxa2bnhj8z3bg2"))
9475fd92
CZ
371 (modules '((guix build utils)))
372 (snippet
373 '(begin
374 ;; Delete the bundled dependencies.
375 (delete-file-recursively "packages")
376 #t))))
377 (build-system python-build-system)
378 (inputs
47bd32d9
CZ
379 `(("python-pyaes" ,python-pyaes)
380 ("python-pysocks" ,python-pysocks)
381 ("python-sip" ,python-sip)
382 ("python-pyqt" ,python-pyqt)
383 ("python-ecdsa" ,python-ecdsa)
384 ("python-pbkdf2" ,python-pbkdf2)
385 ("python-requests" ,python-requests)
386 ("python-qrcode" ,python-qrcode)
387 ("python-protobuf" ,python-protobuf)
81d59f44
VC
388 ("python-aiohttp" ,python-aiohttp)
389 ("python-aiohttp-socks" ,python-aiohttp-socks)
390 ("python-aiorpcx" ,python-aiorpcx)
391 ("python-certifi" ,python-certifi)
47bd32d9
CZ
392 ("python-dnspython" ,python-dnspython)
393 ("python-jsonrpclib-pelix" ,python-jsonrpclib-pelix)))
9475fd92 394 (arguments
47bd32d9 395 `(#:tests? #f ;; package doesn't have any tests
9475fd92
CZ
396 #:phases
397 (modify-phases %standard-phases
398 (add-before 'build 'patch-home
399 (lambda* (#:key outputs #:allow-other-keys)
400 (substitute* "setup.py"
401 (("~/.local/share")
402 (string-append (assoc-ref outputs "out") "/local/share"))))))))
403 (home-page "https://electrum.org/")
404 (synopsis "Bitcoin wallet")
405 (description
406 "Electrum is a lightweight Bitcoin client, based on a client-server
407protocol. It supports Simple Payment Verification (SPV) and deterministic key
408generation from a seed. Your secret keys are encrypted and are never sent to
409other machines/servers. Electrum does not download the Bitcoin blockchain.")
410 (license license:expat)))
8514662b 411
a0bb0217
VC
412(define-public electron-cash
413 (package
414 (inherit electrum)
415 (name "electron-cash")
7a70e7ca 416 (version "4.0.7")
a0bb0217
VC
417 (source
418 (origin
419 (method url-fetch)
420 (uri (string-append "https://electroncash.org/downloads/"
421 version
4e86e9d7 422 "/win-linux/Electron-Cash-"
a0bb0217
VC
423 version
424 ".tar.gz"))
425 (sha256
426 (base32
7a70e7ca 427 "0xswmr68cm1c77lzisi3z812jzqczm9dfrshfhdq42zz5kaz4gnn"))
a0bb0217
VC
428 (modules '((guix build utils)))
429 (snippet
430 '(begin
431 ;; Delete the bundled dependencies.
432 (delete-file-recursively "packages")
433 #t))))
434 (home-page "https://electroncash.org/")
435 (synopsis "Bitcoin Cash wallet")
436 (description
437 "Electroncash is a lightweight Bitcoin Cash client, based on a client-server
438protocol. It supports Simple Payment Verification (SPV) and deterministic key
439generation from a seed. Your secret keys are encrypted and are never sent to
440other machines/servers. Electroncash does not download the Bitcoin Cash blockchain.")
441 (license license:expat)))
442
8514662b
TF
443(define-public monero
444 ;; This package bundles easylogging++ and lmdb.
fc54da1d
GLV
445 ;; The bundled easylogging++ is modified, and the changes will not be
446 ;; upstreamed.
8514662b
TF
447 ;; The devs deem the lmdb driver too critical a consenus component, to use
448 ;; the system's dynamically linked library.
449 (package
450 (name "monero")
f8f2a944 451 (version "0.14.1.2")
8514662b
TF
452 (source
453 (origin
0a551443
TF
454 (method git-fetch)
455 (uri (git-reference
fc54da1d
GLV
456 (url "https://github.com/monero-project/monero.git")
457 (commit (string-append "v" version))
458 (recursive? #t)))
136ff9a2 459 (file-name (git-file-name name version))
0a551443 460 (patches (search-patches "monero-use-system-miniupnpc.patch"))
fc54da1d
GLV
461 (modules '((guix build utils)))
462 (snippet
463 '(begin
464 ;; Delete bundled dependencies.
465 (for-each
466 delete-file-recursively
467 '("external/miniupnp" "external/rapidjson"
468 "external/unbound"))
469 #t))
8514662b
TF
470 (sha256
471 (base32
f8f2a944 472 "00zl883c7lcd9z7g4y3vv7rxmr7ppzrxdblnhk32r9l3qzyw55r6"))))
8514662b
TF
473 (build-system cmake-build-system)
474 (native-inputs
475 `(("doxygen" ,doxygen)
fc54da1d 476 ("git" ,git)
8514662b 477 ("graphviz" ,graphviz)
fc54da1d 478 ("pkg-config" ,pkg-config)
b7a07bbd
GLV
479 ("protobuf" ,protobuf)
480 ("python" ,python)
fc54da1d 481 ("qttools" ,qttools)))
8514662b 482 (inputs
fc54da1d 483 `(("boost" ,boost)
0a551443 484 ("cppzmq" ,cppzmq)
8514662b 485 ("expat" ,expat)
fc54da1d 486 ("hidapi" ,hidapi)
fc54da1d 487 ("libsodium" ,libsodium)
b7a07bbd
GLV
488 ("libunwind" ,libunwind)
489 ("libusb" ,libusb)
fc54da1d 490 ("miniupnpc" ,miniupnpc)
8514662b 491 ("openssl" ,openssl)
b7a07bbd 492 ("protobuf" ,protobuf)
8514662b 493 ("rapidjson" ,rapidjson)
fc54da1d
GLV
494 ("readline" ,readline)
495 ("unbound" ,unbound)
496 ("xz" ,xz)
497 ("zeromq" ,zeromq)))
8514662b
TF
498 (arguments
499 `(#:out-of-source? #t
44554d86
GLV
500 #:configure-flags
501 (list "-DARCH=default"
502 "-DBUILD_TESTS=ON"
503 "-DBUILD_GUI_DEPS=ON"
504 (string-append "-DReadline_ROOT_DIR="
505 (assoc-ref %build-inputs "readline")))
8514662b
TF
506 #:phases
507 (modify-phases %standard-phases
508 ;; tests/core_tests need a valid HOME
509 (add-before 'configure 'set-home
510 (lambda _
511 (setenv "HOME" (getcwd))
512 #t))
fc54da1d 513 (add-after 'set-home 'change-log-path
8514662b
TF
514 (lambda _
515 (substitute* "contrib/epee/src/mlog.cpp"
516 (("epee::string_tools::get_current_module_folder\\(\\)")
fc54da1d
GLV
517 "\".bitmonero\"")
518 (("return \\(")
519 "return ((std::string(getenv(\"HOME\"))) / "))
8514662b 520 #t))
f8f2a944
GLV
521 (add-after 'change-log-path 'fix-file-permissions-for-tests
522 (lambda _
523 (for-each make-file-writable
524 (find-files "tests/data/" "wallet_9svHk1.*"))
525 #t))
fc54da1d 526 ;; Only try tests that don't need access to network or system
8514662b
TF
527 (replace 'check
528 (lambda _
cb45aad9 529 (invoke "make" "ARGS=-R 'hash|core_tests' --verbose" "test")))
8514662b
TF
530 (add-after 'check 'unit-tests
531 (lambda _
532 (let ((excluded-unit-tests
533 (string-join
534 '("AddressFromURL.Success"
535 "AddressFromURL.Failure"
536 "DNSResolver.IPv4Success"
537 "DNSResolver.DNSSECSuccess"
538 "DNSResolver.DNSSECFailure"
fc54da1d 539 "DNSResolver.GetTXTRecord"
fc54da1d 540 "is_hdd.linux_os_root")
8514662b 541 ":")))
797445be
TF
542 (invoke "tests/unit_tests/unit_tests"
543 (string-append "--gtest_filter=-"
b7a07bbd
GLV
544 excluded-unit-tests)))))
545 (add-after 'install 'delete-dead-links
546 (lambda* (#:key outputs #:allow-other-keys)
547 (let ((out (assoc-ref outputs "out")))
548 (delete-file (string-append out "/lib/libprotobuf.so"))
549 (delete-file (string-append out "/lib/libusb-1.0.so"))
550 #t))))))
8514662b
TF
551 (home-page "https://getmonero.org/")
552 (synopsis "Command-line interface to the Monero currency")
553 (description
fc54da1d
GLV
554 "Monero is a secure, private, untraceable currency. This package provides
555the Monero command line client and daemon.")
8514662b 556 (license license:bsd-3)))
79228a52 557
f7e24839 558(define-public monero-gui
79228a52 559 (package
f7e24839 560 (name "monero-gui")
deb08362 561 (version "0.14.1.2")
79228a52
TF
562 (source
563 (origin
3902bc5c
TF
564 (method git-fetch)
565 (uri (git-reference
1362e529 566 (url "https://github.com/monero-project/monero-gui.git")
3902bc5c 567 (commit (string-append "v" version))))
398a96a2 568 (file-name (git-file-name name version))
79228a52
TF
569 (sha256
570 (base32
deb08362 571 "1rm043r6y2mzy8pclnzbjjfxgps8pkfa2b92p66k8y8rdmgq6m1k"))))
79228a52
TF
572 (build-system gnu-build-system)
573 (native-inputs
1362e529 574 `(("pkg-config" ,pkg-config)
6915d20f 575 ("qttools" ,qttools)))
79228a52
TF
576 (inputs
577 `(("boost" ,boost)
1362e529 578 ("hidapi" ,hidapi)
1362e529 579 ("libsodium" ,libsodium)
b7a07bbd
GLV
580 ("libunwind" ,libunwind)
581 ("libusb" ,libusb)
79228a52 582 ("openssl" ,openssl)
b7a07bbd 583 ("protobuf" ,protobuf)
6915d20f
EF
584 ("qtbase" ,qtbase)
585 ("qtdeclarative" ,qtdeclarative)
586 ("qtgraphicaleffects" ,qtgraphicaleffects)
1362e529
GLV
587 ("qtlocation" ,qtlocation)
588 ("qtmultimedia" ,qtmultimedia)
6915d20f 589 ("qtquickcontrols" ,qtquickcontrols)
1362e529
GLV
590 ("qtquickcontrols2",qtquickcontrols2)
591 ("qtsvg" ,qtsvg)
592 ("qtwebchannel" ,qtwebchannel)
593 ("qtx11extras" ,qtx11extras)
594 ("qtxmlpatterns" ,qtxmlpatterns)
79228a52
TF
595 ("unbound" ,unbound)))
596 (propagated-inputs
597 `(("monero" ,monero)))
598 (arguments
1362e529
GLV
599 `(#:modules ((guix build gnu-build-system)
600 (guix build qt-utils)
601 (guix build utils))
602 #:imported-modules (,@%gnu-build-system-modules
603 (guix build qt-utils))
604 #:phases
79228a52
TF
605 (modify-phases %standard-phases
606 (delete 'configure)
607 (delete 'check)
608 (add-before 'build 'fix-makefile-vars
609 (lambda _
610 (substitute* "src/zxcvbn-c/makefile"
611 (("\\?=") "="))
612 #t))
613 (add-after 'fix-makefile-vars 'fix-library-paths
614 (lambda* (#:key inputs #:allow-other-keys)
615 (substitute* "monero-wallet-gui.pro"
1362e529
GLV
616 (("-L/usr/local/lib")
617 "")
79228a52 618 (("-L/usr/local/opt/openssl/lib")
1362e529 619 (string-append "-L" (assoc-ref inputs "openssl") "/lib"))
79228a52 620 (("-L/usr/local/opt/boost/lib")
1362e529 621 (string-append "-L" (assoc-ref inputs "boost") "/lib")))
79228a52
TF
622 #t))
623 (add-after 'fix-library-paths 'fix-monerod-path
624 (lambda* (#:key inputs #:allow-other-keys)
625 (substitute* "src/daemon/DaemonManager.cpp"
626 (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
1362e529 627 (string-append "\"" (assoc-ref inputs "monero")
79228a52
TF
628 "/bin/monerod")))
629 #t))
6915d20f
EF
630 (add-after 'fix-monerod-path 'fix-qt-paths
631 (lambda* (#:key inputs #:allow-other-keys)
1362e529
GLV
632 (substitute* "monero-wallet-gui.pro"
633 (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
634 (string-append (assoc-ref inputs "qttools") "/bin/lrelease"))
635 (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate")
636 (string-append (assoc-ref inputs "qttools") "/bin/lupdate")))
637 #t))
638 (add-after 'fix-qt-paths 'make-qt-deterministic
639 (lambda _
640 (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
641 #t))
642 (add-after 'make-qt-deterministic 'fix-version
643 (lambda _
644 (substitute* "build.sh"
645 (("echo .*> version.js")
646 ""))
647 (with-output-to-file "version.js"
648 (lambda _
649 (format #t
650 "var GUI_VERSION = \"~a\"~@
651 var GUI_MONERO_VERSION = \"~a\"~%"
652 ,version
653 ,(package-version monero))))
654 #t))
79228a52
TF
655 (replace 'build
656 (lambda _
88d5ee44 657 (invoke "./build.sh")))
79228a52
TF
658 (add-after 'build 'fix-install-path
659 (lambda* (#:key outputs #:allow-other-keys)
660 (substitute* "build/Makefile"
661 (("/opt/monero-wallet-gui")
662 (assoc-ref outputs "out")))
663 #t))
664 (add-before 'install 'change-dir
665 (lambda _
1362e529
GLV
666 (chdir "build")
667 #t))
668 (add-after 'install 'wrap-program
669 (lambda* (#:key outputs #:allow-other-keys)
6915d20f 670 (let ((out (assoc-ref outputs "out")))
1362e529
GLV
671 (wrap-qt-program out "monero-wallet-gui"))
672 #t)))))
79228a52
TF
673 (home-page "https://getmonero.org/")
674 (synopsis "Graphical user interface for the Monero currency")
675 (description
1362e529
GLV
676 "Monero is a secure, private, untraceable currency. This package provides
677the Monero GUI client.")
79228a52 678 (license license:bsd-3)))
00d3f022 679
f7e24839
TF
680(define-public monero-core
681 (deprecated-package "monero-core" monero-gui))
682
00d3f022
DM
683(define-public python-trezor-agent
684 (package
685 (name "python-trezor-agent")
37cff994 686 (version "0.13.1")
00d3f022
DM
687 (source
688 (origin
39a7b720
TGR
689 (method git-fetch)
690 (uri (git-reference
691 (url "https://github.com/romanz/trezor-agent.git")
692 (commit (string-append "v" version))))
693 (file-name (git-file-name name version))
00d3f022 694 (sha256
37cff994 695 (base32 "0q99vbfd3h85s8rnjipnmldixabqmmlk5w9karv6f0rhyi54f4zv"))))
00d3f022
DM
696 (build-system python-build-system)
697 (arguments
698 `(#:phases
699 (modify-phases %standard-phases
df724c9c
VC
700 (add-after 'unpack 'remove-requires-backports-shutil-which
701 ;; Remove requires on backport of shutil_which, as python 3.4+ has
702 ;; a built-in implementation supported in python-trezor-agent.
703 (lambda _
704 (substitute* "setup.py"
705 (("'backports.shutil_which>=3.5.1',") ""))
706 #t))
00d3f022
DM
707 (delete 'check)
708 (add-after 'install 'check
709 (lambda* (#:key outputs inputs #:allow-other-keys)
39a7b720 710 ;; Make installed package available for running the tests.
00d3f022
DM
711 (add-installed-pythonpath inputs outputs)
712 (invoke "py.test"))))))
713 (propagated-inputs
df724c9c
VC
714 `(("python-configargparse" ,python-configargparse)
715 ("python-daemon" ,python-daemon)
716 ("python-docutils" ,python-docutils)
717 ("python-ecdsa" ,python-ecdsa)
00d3f022 718 ("python-ed25519" ,python-ed25519)
df724c9c
VC
719 ("python-mnemonic" ,python-mnemonic)
720 ("python-pymsgbox" ,python-pymsgbox)
00d3f022 721 ("python-semver" ,python-semver)
df724c9c
VC
722 ("python-unidecode" ,python-unidecode)
723 ("python-wheel" ,python-wheel)))
00d3f022 724 (native-inputs
df724c9c
VC
725 `(("gnupg" ,gnupg)
726 ("python-mock" ,python-mock)
00d3f022
DM
727 ("python-pytest" ,python-pytest)))
728 (home-page "https://github.com/romanz/trezor-agent")
df724c9c 729 (synopsis "Use hardware wallets as SSH and GPG agent")
00d3f022
DM
730 (description
731 "@code{libagent} is a library that allows using TREZOR, Keepkey and
732Ledger Nano as a hardware SSH/GPG agent.")
733 (license license:lgpl3)))
734
6e9749ef
DM
735(define-public python-mnemonic
736 (package
737 (name "python-mnemonic")
011ec062 738 (version "0.19")
6e9749ef
DM
739 (source
740 (origin
741 (method url-fetch)
742 (uri (pypi-uri "mnemonic" version))
743 (sha256
011ec062 744 (base32 "0cd9prmdj8wzdmc7lxbf9lz0xrlkvak5ignag406mmfbn81fndsf"))))
6e9749ef
DM
745 (build-system python-build-system)
746 (propagated-inputs
747 `(("python-pbkdf2" ,python-pbkdf2)))
748 (home-page "https://github.com/trezor/python-mnemonic")
749 (synopsis "Implementation of Bitcoin BIP-0039")
750 (description "@code{mnemonic} is a library that provides an implementation
751of Bitcoin BIP-0039.")
752 (license license:expat)))
753
754(define-public python2-mnemonic
755 (package-with-python2 python-mnemonic))
96f5e2e9
DM
756
757(define-public python-ledgerblue
758 (package
759 (name "python-ledgerblue")
760 (version "0.1.16")
761 (source
762 (origin
763 (method url-fetch)
764 (uri (pypi-uri "ledgerblue" version))
765 (sha256
766 (base32
767 "010mghaqh1cmz3a0ifc3f40mmyplilwlw7kpha2mzyrrff46p9gb"))))
768 (build-system python-build-system)
769 (propagated-inputs
770 `(("python-ecpy" ,python-ecpy)
771 ("python-future" ,python-future)
772 ("python-hidapi" ,python-hidapi)
773 ("python-pillow" ,python-pillow)
774 ("python-protobuf" ,python-protobuf)
775 ("python-pycrypto" ,python-pycrypto)))
776 (home-page "https://github.com/LedgerHQ/blue-loader-python")
777 (synopsis "Python library to communicate with Ledger Blue/Nano S")
778 (description "@code{ledgerblue} is a Python library to communicate with
779Ledger Blue/Nano S.")
780 (license license:asl2.0)))
781
782(define-public python2-ledgerblue
783 (package-with-python2 python-ledgerblue))
784
1dca32e3
DM
785(define-public python-trezor
786 (package
787 (name "python-trezor")
61497aa4 788 (version "0.11.3")
1dca32e3
DM
789 (source
790 (origin
791 (method url-fetch)
792 (uri (pypi-uri "trezor" version))
793 (sha256
794 (base32
61497aa4 795 "0211m027vlvyqy83kwbjjjxalb04xgf1klv0h0y0f0yhj07516n7"))))
1dca32e3 796 (build-system python-build-system)
b4c698c8
VC
797 (arguments
798 `(#:phases
799 (modify-phases %standard-phases
800 ;; Default tests run device-specific tests which fail, only run specific tests.
801 (replace 'check
802 (lambda* (#:key inputs outputs #:allow-other-keys)
8c16b8a4
VC
803 ;; Delete tests that require network access.
804 (delete-file "trezorlib/tests/unit_tests/test_tx_api.py")
805 (invoke "python" "-m" "pytest" "--pyarg" "trezorlib.tests.unit_tests"))))))
1dca32e3 806 (propagated-inputs
b4c698c8 807 `(("python-click" ,python-click)
8c16b8a4 808 ("python-construct" ,python-construct)
b4c698c8 809 ("python-ecdsa" ,python-ecdsa)
b4c698c8 810 ("python-libusb1" ,python-libusb1)
1dca32e3 811 ("python-mnemonic" ,python-mnemonic)
b4c698c8
VC
812 ("python-pyblake2" ,python-pyblake2)
813 ("python-requests" ,python-requests)
8c16b8a4 814 ("python-typing-extensions" ,python-typing-extensions)))
1dca32e3 815 (native-inputs
61497aa4
TGR
816 ;; For tests.
817 `(("protobuf" ,protobuf)
818 ("python-black" ,python-black)
819 ("python-protobuf" ,python-protobuf)
820 ("python-isort" ,python-isort)
821 ("python-pyqt" ,python-pyqt)
822 ("python-pytest" ,python-pytest)))
1dca32e3
DM
823 (home-page "https://github.com/trezor/python-trezor")
824 (synopsis "Python library for communicating with TREZOR Hardware Wallet")
825 (description "@code{trezor} is a Python library for communicating with
826TREZOR Hardware Wallet.")
827 (license license:lgpl3)))
828
d6ddeffc
DM
829(define-public python-keepkey
830 (package
831 (name "python-keepkey")
52311b51 832 (version "6.0.3")
d6ddeffc
DM
833 (source
834 (origin
835 (method url-fetch)
836 (uri (pypi-uri "keepkey" version))
837 (sha256
838 (base32
52311b51 839 "0z3d0m6364v9dv0njs4cd5m5ai6j6v35xaaxfxl90m9vmyxy81vd"))))
d6ddeffc
DM
840 (build-system python-build-system)
841 (arguments
842 `(#:phases
843 (modify-phases %standard-phases
844 (delete 'check)
845 (add-after 'install 'check
846 (lambda* (#:key inputs outputs #:allow-other-keys)
847 (add-installed-pythonpath inputs outputs)
848 (apply invoke "python" (find-files "tests/unit" "\\.py$")))))))
849 (propagated-inputs
850 `(("python-ecdsa" ,python-ecdsa)
851 ("python-hidapi" ,python-hidapi)
02d9e5d2 852 ("python-libusb1" ,python-libusb1)
d6ddeffc
DM
853 ("python-mnemonic" ,python-mnemonic)
854 ("python-protobuf" ,python-protobuf)))
855 (home-page "https://github.com/keepkey/python-keepkey")
856 (synopsis "Python library for communicating with KeepKey Hardware Wallet")
857 (description "@code{keepkey} is a Python library for communicating with
858the KeepKey Hardware Wallet.")
859 (license license:lgpl3)))
860
861(define-public python2-keepkey
862 (package-with-python2 python-keepkey))
863
d596fea5
DM
864(define-public ledger-agent
865 (package
866 (name "ledger-agent")
867 (version "0.9.0")
868 (source
869 (origin
870 (method url-fetch)
871 (uri (pypi-uri "ledger_agent" version))
872 (sha256
873 (base32
874 "03zj602m2rln9yvr08dswy56vzkbldp8b074ixwzz525dafblr92"))))
875 (build-system python-build-system)
876 (inputs
877 `(("python-ledgerblue" ,python-ledgerblue)
878 ("python-trezor-agent" ,python-trezor-agent)))
879 (home-page "http://github.com/romanz/trezor-agent")
880 (synopsis "Ledger as hardware SSH/GPG agent")
881 (description "This package allows using Ledger as hardware SSH/GPG agent.
882
5859fd6c
MB
883Usage for SSH: trezor-agent foo@@example.com --connect
884Usage for GPG: Initialize using trezor-gpg init \"Foo <foo@@example.com>\"
d596fea5
DM
885Then set the environment variable GNUPGHOME to
886\"${HOME}/.gnupg/trezor\".")
887 (license license:lgpl3)))
47c8ea99
DM
888
889(define-public trezor-agent
890 (package
891 (name "trezor-agent")
7fafdadd 892 (version "0.10.0")
47c8ea99
DM
893 (source
894 (origin
895 (method url-fetch)
896 (uri (pypi-uri "trezor_agent" version))
897 (sha256
898 (base32
7fafdadd
VC
899 "144657c7bn0a667dq5fv5r6j7iilxf3h9agj29v1m2qpq40g0az8"))))
900 (arguments
901 ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
902 `(#:phases
903 (modify-phases %standard-phases
904 (add-after 'wrap 'fixup-agent-py
905 (lambda* (#:key inputs outputs #:allow-other-keys)
906 (let* ((out (assoc-ref outputs "out")))
907 ;; overwrite the wrapper with the real thing.
908 (install-file "./trezor_agent.py"
909 (string-append out "/bin"))
910 #t))))))
47c8ea99
DM
911 (build-system python-build-system)
912 (inputs
913 `(("python-trezor" ,python-trezor)
914 ("python-trezor-agent" ,python-trezor-agent)))
7fafdadd
VC
915 (native-inputs
916 `(("python-hidapi" ,python-hidapi)))
917 (home-page "https://github.com/romanz/trezor-agent")
47c8ea99
DM
918 (synopsis "Using Trezor as hardware SSH/GPG agent")
919 (description "This package allows using Trezor as a hardware SSH/GPG
920agent.")
921 (license license:lgpl3)))
50c4d676
DM
922
923(define-public keepkey-agent
924 (package
925 (name "keepkey-agent")
926 (version "0.9.0")
927 (source
928 (origin
929 (method url-fetch)
930 (uri (pypi-uri "keepkey_agent" version))
931 (sha256
932 (base32
933 "03779gvlx70i0nnry98i4pl1d92604ix5x6jgdfkrdgzqbh5vj27"))))
934 (build-system python-build-system)
935 (inputs
936 `(("python-keepkey" ,python-keepkey)
937 ("python-trezor-agent" ,python-trezor-agent)))
938 (home-page "http://github.com/romanz/trezor-agent")
939 (synopsis "KeepKey as hardware SSH/GPG agent")
940 (description "This package allows using KeepKey as a hardware SSH/GPG
941agent.")
942 (license license:lgpl3)))
3da86c52
AP
943
944(define-public python-stdnum
945 (package
946 (name "python-stdnum")
947 (version "1.8.1")
948 (source
949 (origin
950 (method url-fetch)
951 (uri (pypi-uri "python-stdnum" version))
952 (sha256
953 (base32
954 "0hvr47q32xbyiznpmbg4r8rcvxhnf0lwf33hcpnynyik57djy5np"))))
955 (build-system python-build-system)
956 (home-page
957 "https://arthurdejong.org/python-stdnum/")
958 (synopsis
959 "Python module to handle standardized number and code formats")
960 (description
961 "This is a Python library that aims to provide functions to handle,
962parse and validate standard numbers.
963The module supports more than 100 different number formats
964amongst which a great number of VAT and other tax numbers,
965personal identity and company identification codes,
966international standard numbers (ISBN, IBAN, EAN, etc.)
967and various other formats.
968The module also inclused implementations of the Verhoeff,
969Luhn and family of ISO/IEC 7064 check digit algorithms. ")
970 (license license:lgpl2.1+)))
971
972(define-public python2-stdnum
973 (package-with-python2 python-stdnum))
730553d7 974
c7299015
NG
975(define-public python-duniterpy
976 (package
977 (name "python-duniterpy")
a41cd135 978 (version "0.55.1")
c7299015
NG
979 (source
980 (origin
981 (method git-fetch)
982 ;; Pypi's default URI is missing "requirements.txt" file.
983 (uri (git-reference
7dab3e61 984 (url "https://git.duniter.org/clients/python/duniterpy.git")
c7299015
NG
985 (commit version)))
986 (file-name (git-file-name name version))
987 (sha256
988 (base32
a41cd135 989 "07zsbbkzmnvyv5v0vw2d42vw3ar4iqhlidy9376ysk4ldlj1igf7"))))
c7299015 990 (build-system python-build-system)
1427d888
NG
991 (arguments
992 ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
42a57df8
NG
993 `(#:tests? #f
994 #:phases
995 (modify-phases %standard-phases
996 (add-after 'build 'build-documentation
997 (lambda _
998 (invoke "make" "docs")))
999 (add-after 'build-documentation 'install-documentation
1000 (lambda* (#:key inputs outputs #:allow-other-keys)
1001 (let* ((out (assoc-ref outputs "out"))
1002 (doc (string-append out "/share/doc/" ,name)))
1003 (mkdir-p doc)
1004 (copy-recursively "docs/_build/html" doc))
1005 #t)))))
1006 (native-inputs
352033f3
NG
1007 `(("sphinx" ,python-sphinx)
1008 ("sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
c7299015 1009 (propagated-inputs
352033f3
NG
1010 `(("aiohttp" ,python-aiohttp)
1011 ("attr" ,python-attr)
1012 ("base58" ,python-base58)
1013 ("jsonschema" ,python-jsonschema)
1014 ("libnacl" ,python-libnacl)
1015 ("pyaes" ,python-pyaes)
1016 ("pylibscrypt" ,python-pylibscrypt)
1017 ("pypeg2" ,python-pypeg2)))
9f1a2be2 1018 (home-page "https://git.duniter.org/clients/python/duniterpy")
c7299015
NG
1019 (synopsis "Python implementation of Duniter API")
1020 (description "@code{duniterpy} is an implementation of
207a79b2 1021@uref{https://github.com/duniter/duniter/, duniter} API. Its
c7299015
NG
1022main features are:
1023@itemize
207a79b2
NG
1024@item Support Duniter's Basic Merkle API and protocol
1025@item Asynchronous/synchronous without threads
1026@item Support HTTP, HTTPS and Web Socket transport for Basic Merkle API
1027@item Support Elasticsearch Duniter4j API
c7299015 1028@item Duniter signing key
207a79b2 1029@item Sign/verify and encrypt/decrypt messages with the Duniter credentials
c7299015
NG
1030@end itemize")
1031 (license license:gpl3+)))
1032
730553d7
NG
1033(define-public silkaj
1034 (package
1035 (name "silkaj")
5d727935 1036 (version "0.7.3")
730553d7
NG
1037 (source
1038 (origin
1039 (method git-fetch)
1040 (uri (git-reference
1041 (url "https://git.duniter.org/clients/python/silkaj.git")
1042 (commit (string-append "v" version))))
1043 (file-name (git-file-name name version))
1044 (sha256
1045 (base32
5d727935 1046 "0yk2574yb0d0k0rg7qf0pkmjidblsad04x8hhqpy9k80rvgjcr5w"))))
730553d7
NG
1047 (build-system python-build-system)
1048 (arguments
e627052f 1049 `(#:tests? #f)) ;no test
730553d7 1050 (inputs
c14b3a8d
NG
1051 `(("click" ,python-click)
1052 ("duniterpy" ,python-duniterpy)
1053 ("ipaddress" ,python-ipaddress)
1054 ("pynacl" ,python-pynacl)
f41378b7
NG
1055 ("tabulate" ,python-tabulate)
1056 ("texttable" ,python-texttable)))
730553d7
NG
1057 (home-page "https://silkaj.duniter.org/")
1058 (synopsis "Command line client for Duniter network")
1059 (description "@code{Silkaj} is a command line client for the
1060@uref{https://github.com/duniter/duniter/, Duniter} network.
1061
1062Its features are:
1063@itemize
1064@item information about currency,
1065@item issuers difficulty to generate next block,
1066@item network view of nodes,
1067@item list of last issuers,
1068@item send transactions,
1069@item get account amount.
1070@end itemize")
1071 (license license:agpl3+)))
90bb244f
TLC
1072
1073(define-public grisbi
1074 (package
1075 (name "grisbi")
1076 (version "1.2.2")
1077 (source
1078 (origin
1079 (method url-fetch)
1080 (uri (string-append
1081 "mirror://sourceforge/grisbi/grisbi%20stable/"
1082 (version-major+minor version) ".x/" version
1083 "/grisbi-" version ".tar.bz2"))
1084 (sha256
1085 (base32
1086 "1piiyyxjsjbw9gcqydvknzxmmfgh8kdqal12ywrxyxih2afwnvbw"))))
1087 (build-system glib-or-gtk-build-system)
1088 (arguments
1089 `(#:configure-flags (list "--without-ofx")))
1090 (propagated-inputs
1091 `(("dconf" ,dconf)))
1092 (native-inputs
1093 `(("glib" ,glib "bin") ; glib-compile-schemas
1094 ("pkg-config" ,pkg-config)
1095 ("intltool" ,intltool)))
1096 (inputs
1097 `(("gtk+" ,gtk+)
1098 ("libgsf" ,libgsf)))
1099 (synopsis "Personal accounting application")
1100 (description "Grisbi is a personal accounting application written by
1101French developers that is designed to follow French accounting rules.
1102Grisbi can manage multiple accounts, currencies and users. It manages
1103third party, expenditure and receipt categories, budgetary lines,
1104financial years, budget estimates, bankcard management and other
1105information.")
1106 (home-page "http://grisbi.org")
1107 (license license:gpl2+)))
01b37d0f 1108
1109(define-public trezord
1110 (package
1111 (name "trezord")
1112 (version "2.0.17")
1113 (source
1114 (origin
1115 (method git-fetch)
1116 (uri (git-reference
1117 (url "https://github.com/trezor/trezord-go.git")
1118 (commit (string-append "v" version))))
1119 (sha256
1120 (base32
1121 "0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7"))
1122 (file-name (git-file-name name version))))
1123 (build-system go-build-system)
1124 (arguments
1125 '(#:import-path "github.com/trezor/trezord-go"))
1126 (home-page "https://trezor.io")
1127 (synopsis "Trezor Communication Daemon aka Trezor Bridge (written in Go)")
1128 (description "This allows a Trezor hardware wallet to communicate to the
1129Trezor wallet.")
1130 (license license:lgpl3+)))
af012922 1131
1132(define-public bitcoin-abc
1133 (package
1134 (inherit bitcoin-core)
1135 (name "bitcoin-abc")
1136 (version "0.19.8")
1137 (source (origin
1138 (method url-fetch)
1139 (uri (string-append "https://download.bitcoinabc.org/"
1140 version "/linux/src/bitcoin-abc-"
1141 version ".tar.gz"))
1142 (sha256
1143 (base32
1144 "0ndvkxv5m8346bdhfqzgdiz1k9wyjycj05jp7daf9pml3cw79sz5"))))
1145 (home-page "https://www.bitcoinabc.org/")
1146 (synopsis "Bitcoin ABC peer-to-peer full node for the Bitcoin Cash protocol")
1147 (description
1148 "Bitcoin Cash brings sound money to the world, fulfilling the original
1149promise of Bitcoin as Peer-to-Peer Electronic Cash. Merchants and users are
1150empowered with low fees and reliable confirmations is a digital currency that
1151enables instant payments to anyone anywhere in the world. It uses
1152peer-to-peer technology to operate without central authority: managing
1153transactions and issuing money are carried out collectively by the network.
1154As a fork it implemented changes lowering the time between blocks and now
1155offers confimations after less than 5 seconds and have significantly lower
1156fees that BTC. Bitcoin ABC is the reference implementation of the Bitcoin
1157Cash protocol. This package provides the Bitcoin Cash command line client and
1158a client based on Qt. This is a fork of Bitcoin Core.")))