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