Commit | Line | Data |
---|---|---|
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> |
8b7ac58c | 9 | ;;; Copyright © 2017, 2018 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> |
20c6b9da AE |
14 | ;;; |
15 | ;;; This file is part of GNU Guix. | |
16 | ;;; | |
17 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
18 | ;;; under the terms of the GNU General Public License as published by | |
19 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
20 | ;;; your option) any later version. | |
21 | ;;; | |
22 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
23 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
24 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
25 | ;;; GNU General Public License for more details. | |
26 | ;;; | |
27 | ;;; You should have received a copy of the GNU General Public License | |
28 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
29 | ||
30 | (define-module (gnu packages finance) | |
fa4f95a7 CB |
31 | #:use-module ((guix licenses) #:prefix license:) |
32 | #:use-module (guix packages) | |
33 | #:use-module (guix download) | |
730553d7 | 34 | #:use-module (guix git-download) |
fa4f95a7 CB |
35 | #:use-module (guix build-system gnu) |
36 | #:use-module (guix build-system cmake) | |
37 | #:use-module (guix build-system python) | |
5424f9bc | 38 | #:use-module (gnu packages) |
fa4f95a7 CB |
39 | #:use-module (gnu packages base) |
40 | #:use-module (gnu packages boost) | |
41 | #:use-module (gnu packages check) | |
0a551443 | 42 | #:use-module (gnu packages crypto) |
fa4f95a7 CB |
43 | #:use-module (gnu packages databases) |
44 | #:use-module (gnu packages documentation) | |
45 | #:use-module (gnu packages dns) | |
46 | #:use-module (gnu packages emacs) | |
255d1bbe | 47 | #:use-module (gnu packages dbm) |
fa4f95a7 CB |
48 | #:use-module (gnu packages graphviz) |
49 | #:use-module (gnu packages groff) | |
50 | #:use-module (gnu packages libedit) | |
51 | #:use-module (gnu packages libevent) | |
52 | #:use-module (gnu packages libunwind) | |
96f5e2e9 | 53 | #:use-module (gnu packages libusb) |
fa4f95a7 CB |
54 | #:use-module (gnu packages linux) |
55 | #:use-module (gnu packages multiprecision) | |
0a551443 | 56 | #:use-module (gnu packages networking) |
fa4f95a7 CB |
57 | #:use-module (gnu packages pkg-config) |
58 | #:use-module (gnu packages protobuf) | |
59 | #:use-module (gnu packages python) | |
cc6f4912 | 60 | #:use-module (gnu packages python-crypto) |
589e3f4e | 61 | #:use-module (gnu packages python-web) |
44d10b1f | 62 | #:use-module (gnu packages python-xyz) |
fa4f95a7 | 63 | #:use-module (gnu packages qt) |
1d0865c1 | 64 | #:use-module (gnu packages readline) |
fa4f95a7 CB |
65 | #:use-module (gnu packages texinfo) |
66 | #:use-module (gnu packages textutils) | |
67 | #:use-module (gnu packages tls) | |
68 | #:use-module (gnu packages upnp) | |
69 | #:use-module (gnu packages web) | |
70 | #:use-module (gnu packages xml) | |
71 | #:use-module (gnu packages gnuzilla)) | |
20c6b9da AE |
72 | |
73 | (define-public bitcoin-core | |
74 | (package | |
75 | (name "bitcoin-core") | |
0a59cc6e | 76 | (version "0.17.1") |
20c6b9da AE |
77 | (source (origin |
78 | (method url-fetch) | |
79 | (uri | |
0a59cc6e | 80 | (string-append "https://bitcoincore.org/bin/bitcoin-core-" |
14ea30e4 | 81 | version "/bitcoin-" version ".tar.gz")) |
20c6b9da AE |
82 | (sha256 |
83 | (base32 | |
0a59cc6e | 84 | "0am4pnaf2cisv172jqx6jdpzx770agm8777163lkjbw3ryslymiy")))) |
20c6b9da AE |
85 | (build-system gnu-build-system) |
86 | (native-inputs | |
87 | `(("pkg-config" ,pkg-config) | |
e49e74f5 | 88 | ("python" ,python) ; for the tests |
0193812a MB |
89 | ("util-linux" ,util-linux) ; provides the hexdump command for tests |
90 | ("qttools" ,qttools))) | |
20c6b9da | 91 | (inputs |
fe7fa353 | 92 | `(("bdb" ,bdb-5.3) ; with 6.2.23, there is an error: ambiguous overload |
20c6b9da | 93 | ("boost" ,boost) |
14ea30e4 | 94 | ("libevent" ,libevent) |
20c6b9da AE |
95 | ("miniupnpc" ,miniupnpc) |
96 | ("openssl" ,openssl) | |
97 | ("protobuf" ,protobuf) | |
0193812a | 98 | ("qtbase" ,qtbase))) |
20c6b9da AE |
99 | (arguments |
100 | `(#:configure-flags | |
101 | (list | |
102 | ;; We use a bdb version newer than 4.8. | |
103 | "--with-incompatible-bdb" | |
104 | ;; Boost is not found unless specified manually. | |
105 | (string-append "--with-boost=" | |
0193812a MB |
106 | (assoc-ref %build-inputs "boost")) |
107 | ;; XXX: The configure script looks up Qt paths by | |
108 | ;; `pkg-config --variable=host_bins Qt5Core`, which fails to pick | |
109 | ;; up executables residing in 'qttools', so we specify them here. | |
110 | (string-append "ac_cv_path_LRELEASE=" | |
111 | (assoc-ref %build-inputs "qttools") | |
112 | "/bin/lrelease") | |
113 | (string-append "ac_cv_path_LUPDATE=" | |
114 | (assoc-ref %build-inputs "qttools") | |
115 | "/bin/lupdate")) | |
20c6b9da AE |
116 | #:phases |
117 | (modify-phases %standard-phases | |
99629e5a CD |
118 | (add-before 'configure 'make-qt-deterministic |
119 | (lambda _ | |
120 | ;; Make Qt deterministic. | |
121 | (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1") | |
122 | #t)) | |
20c6b9da AE |
123 | (add-before 'check 'set-home |
124 | (lambda _ | |
0e9600cb DM |
125 | (setenv "HOME" (getenv "TMPDIR")) ; Tests write to $HOME. |
126 | #t))))) | |
20c6b9da AE |
127 | (home-page "https://bitcoin.org/en/") |
128 | (synopsis "Bitcoin peer-to-peer client") | |
129 | (description | |
130 | "Bitcoin is a digital currency that enables instant payments to anyone | |
131 | anywhere in the world. It uses peer-to-peer technology to operate without | |
132 | central authority: managing transactions and issuing money are carried out | |
133 | collectively by the network. Bitcoin Core is the reference implementation | |
134 | of the bitcoin protocol. This package provides the Bitcoin Core command | |
135 | line client and a client based on Qt.") | |
136 | (license license:expat))) | |
d3699b31 AG |
137 | |
138 | (define-public ledger | |
139 | (package | |
140 | (name "ledger") | |
141 | (version "3.1.1") | |
8b7ac58c TGR |
142 | (source |
143 | (origin | |
144 | (method git-fetch) | |
145 | (uri (git-reference | |
146 | (url "https://github.com/ledger/ledger.git") | |
147 | (commit (string-append "v" version)))) | |
148 | (file-name (git-file-name name version)) | |
149 | (sha256 | |
150 | (base32 "1j4p7djkmdmd858hylrsc3inamh9z0vkfl98s9wiqfmrzw51pmxp")) | |
151 | (patches (search-patches "ledger-revert-boost-python-fix.patch" | |
152 | "ledger-fix-uninitialized.patch")))) | |
d3699b31 AG |
153 | (build-system cmake-build-system) |
154 | (arguments | |
155 | `(#:modules ((guix build cmake-build-system) | |
948e888d | 156 | ((guix build gnu-build-system) #:prefix gnu:) |
d3699b31 AG |
157 | (guix build utils) |
158 | (guix build emacs-utils)) | |
159 | #:imported-modules (,@%cmake-build-system-modules | |
160 | (guix build emacs-utils)) | |
161 | #:configure-flags | |
162 | `("-DBUILD_DOCS:BOOL=ON" | |
163 | "-DBUILD_WEB_DOCS:BOOL=ON" | |
164 | "-DBUILD_EMACSLISP:BOOL=ON" | |
165 | "-DUSE_PYTHON:BOOL=ON" | |
166 | "-DCMAKE_INSTALL_LIBDIR:PATH=lib" | |
167 | ,(string-append "-DUTFCPP_INCLUDE_DIR:PATH=" | |
168 | (assoc-ref %build-inputs "utfcpp") | |
169 | "/include")) | |
948e888d AI |
170 | ;; Skip failing test BaselineTest_cmd-org during the check phase. |
171 | ;; This is a known upstream issue. See | |
172 | ;; https://github.com/ledger/ledger/issues/550 | |
173 | #:make-flags (list "ARGS=-E BaselineTest_cmd-org") | |
d3699b31 AG |
174 | #:phases |
175 | (modify-phases %standard-phases | |
68f2e552 MB |
176 | (add-after 'unpack 'boost-compat |
177 | (lambda _ | |
178 | (substitute* "src/utils.h" | |
179 | ;; This library moved in Boost 1.66. Remove for Ledger | |
180 | ;; versions > 3.1.1. | |
181 | (("boost/uuid/sha1.hpp") "boost/uuid/detail/sha1.hpp")) | |
182 | #t)) | |
d3699b31 AG |
183 | (add-before 'configure 'install-examples |
184 | (lambda* (#:key outputs #:allow-other-keys) | |
185 | (let ((examples (string-append (assoc-ref outputs "out") | |
186 | "/share/doc/ledger/examples"))) | |
187 | (install-file "test/input/sample.dat" examples) | |
188 | (install-file "test/input/demo.ledger" examples)) | |
189 | #t)) | |
190 | (add-after 'build 'build-doc | |
1f3c4ba8 | 191 | (lambda _ (invoke "make" "doc"))) |
d3699b31 AG |
192 | (add-before 'check 'check-setup |
193 | ;; One test fails if it can't set the timezone. | |
194 | (lambda* (#:key inputs #:allow-other-keys) | |
195 | (setenv "TZDIR" | |
196 | (string-append (assoc-ref inputs "tzdata") | |
197 | "/share/zoneinfo")) | |
198 | #t)) | |
948e888d | 199 | (replace 'check (assoc-ref gnu:%standard-phases 'check)) |
d3699b31 AG |
200 | (add-after 'install 'relocate-elisp |
201 | (lambda* (#:key outputs #:allow-other-keys) | |
202 | (let* ((site-dir (string-append (assoc-ref outputs "out") | |
203 | "/share/emacs/site-lisp")) | |
204 | (guix-dir (string-append site-dir "/guix.d")) | |
205 | (orig-dir (string-append site-dir "/ledger-mode")) | |
206 | (dest-dir (string-append guix-dir "/ledger-mode"))) | |
207 | (mkdir-p guix-dir) | |
208 | (rename-file orig-dir dest-dir) | |
1f3c4ba8 | 209 | (emacs-generate-autoloads ,name dest-dir))))))) |
d3699b31 AG |
210 | (inputs |
211 | `(("boost" ,boost) | |
212 | ("gmp" ,gmp) | |
213 | ("libedit" ,libedit) | |
214 | ("mpfr" ,mpfr) | |
215 | ("python" ,python-2) | |
216 | ("tzdata" ,tzdata) | |
217 | ("utfcpp" ,utfcpp))) | |
218 | (native-inputs | |
b8fc3622 | 219 | `(("emacs" ,emacs-minimal) |
d3699b31 AG |
220 | ("groff" ,groff) |
221 | ("texinfo" ,texinfo))) | |
b53a0c88 | 222 | (home-page "https://ledger-cli.org/") |
d3699b31 AG |
223 | (synopsis "Command-line double-entry accounting program") |
224 | (description | |
225 | "Ledger is a powerful, double-entry accounting system that is | |
226 | accessed from the UNIX command-line. This may put off some users, since | |
227 | there is no flashy UI, but for those who want unparalleled reporting | |
228 | access to their data there are few alternatives. | |
229 | ||
230 | Ledger uses text files for input. It reads the files and generates | |
231 | reports; there is no other database or stored state. To use Ledger, | |
232 | you create a file of your account names and transactions, run from the | |
233 | command line with some options to specify input and requested reports, and | |
234 | get output. The output is generally plain text, though you could generate | |
235 | a graph or html instead. Ledger is simple in concept, surprisingly rich | |
236 | in ability, and easy to use.") | |
237 | ;; There are some extra licenses in files which do not presently get | |
238 | ;; installed when you build this package. Different versions of the GPL | |
239 | ;; are used in the contrib and python subdirectories. The bundled version | |
240 | ;; of utfcpp is under the Boost 1.0 license. Also the file | |
241 | ;; `tools/update_copyright_year` has an Expat license. | |
242 | (license (list license:bsd-3 | |
243 | license:asl2.0 ; src/strptime.cc | |
244 | (license:non-copyleft | |
245 | "file://src/wcwidth.cc" | |
246 | "See src/wcwidth.cc in the distribution.") | |
247 | license:gpl2+)))) ; lisp/* | |
cb0866c3 HG |
248 | |
249 | (define-public geierlein | |
250 | (package | |
251 | (name "geierlein") | |
1c21e734 | 252 | (version "0.9.13") |
cb0866c3 HG |
253 | (source |
254 | (origin | |
1fd71120 TGR |
255 | (method git-fetch) |
256 | (uri (git-reference | |
257 | (url "https://github.com/stesie/geierlein.git") | |
258 | (commit (string-append "V" version)))) | |
259 | (file-name (git-file-name name version)) | |
cb0866c3 | 260 | (sha256 |
1fd71120 | 261 | (base32 "00zpwr3lk2vdmd60fgdwdk0xxs52wvnm19ln2m75yfphydvkglic")))) |
cb0866c3 HG |
262 | (build-system gnu-build-system) |
263 | (arguments | |
1fd71120 | 264 | `(#:tests? #f ; would require npm, python and a lot more |
cb0866c3 HG |
265 | #:phases |
266 | (modify-phases %standard-phases | |
1c21e734 | 267 | (delete 'configure) ; no configure script |
cb0866c3 HG |
268 | (add-after 'unpack 'override-target-directory-and-tool-paths |
269 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
270 | (substitute* "Makefile" | |
271 | (("prefix := .*") | |
272 | (string-append "prefix := " (assoc-ref outputs "out") "\n")) | |
273 | ;; Required for tests, unused for now: | |
274 | ;;(("PYTHON := .*") | |
275 | ;; (string-append (which "python") "\n"))) | |
276 | (("INSTALL := .*") | |
277 | (string-append "INSTALL := " (which "install") "\n"))) | |
278 | (substitute* "bin/xgeierlein.in" | |
279 | ;; Use icecat as XULRUNNER | |
280 | (("^for search ") | |
281 | (string-append "XULRUNNER=" (which "icecat") "\n" | |
282 | "for search "))) | |
283 | #t))))) | |
284 | (inputs | |
285 | `(("icecat" ,icecat))) | |
1e41bb1b | 286 | (home-page "https://stesie.github.io/geierlein/") |
cb0866c3 HG |
287 | (synopsis "Free Elster client, for sending Germany VAT declarations") |
288 | (description | |
289 | "Geierlein is a free Elster client, i.e. an application that | |
290 | allows to send VAT declarations to Germany's fiscal authorities. | |
291 | ||
292 | Currently it is *not* possible to send returns that are due annually | |
293 | (especially the income tax return) since the fiscal authority doesn't | |
294 | allow to do that off the ERiC library (which is proprietary however). | |
295 | It's not clear at the moment whether one day it will be possible to | |
296 | do so.") | |
297 | (license license:agpl3+))) | |
9475fd92 CZ |
298 | |
299 | (define-public electrum | |
300 | (package | |
301 | (name "electrum") | |
81d59f44 | 302 | (version "3.3.3") |
9475fd92 CZ |
303 | (source |
304 | (origin | |
305 | (method url-fetch) | |
306 | (uri (string-append "https://download.electrum.org/" | |
307 | version "/Electrum-" | |
308 | version ".tar.gz")) | |
309 | (sha256 | |
310 | (base32 | |
81d59f44 | 311 | "0z2zfhyawrbzs0w1426a2w0d4wsajl34ymj77qmpm41138g2ysf2")) |
9475fd92 CZ |
312 | (modules '((guix build utils))) |
313 | (snippet | |
314 | '(begin | |
315 | ;; Delete the bundled dependencies. | |
316 | (delete-file-recursively "packages") | |
317 | #t)))) | |
318 | (build-system python-build-system) | |
319 | (inputs | |
47bd32d9 CZ |
320 | `(("python-pyaes" ,python-pyaes) |
321 | ("python-pysocks" ,python-pysocks) | |
322 | ("python-sip" ,python-sip) | |
323 | ("python-pyqt" ,python-pyqt) | |
324 | ("python-ecdsa" ,python-ecdsa) | |
325 | ("python-pbkdf2" ,python-pbkdf2) | |
326 | ("python-requests" ,python-requests) | |
327 | ("python-qrcode" ,python-qrcode) | |
328 | ("python-protobuf" ,python-protobuf) | |
81d59f44 VC |
329 | ("python-aiohttp" ,python-aiohttp) |
330 | ("python-aiohttp-socks" ,python-aiohttp-socks) | |
331 | ("python-aiorpcx" ,python-aiorpcx) | |
332 | ("python-certifi" ,python-certifi) | |
47bd32d9 CZ |
333 | ("python-dnspython" ,python-dnspython) |
334 | ("python-jsonrpclib-pelix" ,python-jsonrpclib-pelix))) | |
9475fd92 | 335 | (arguments |
47bd32d9 | 336 | `(#:tests? #f ;; package doesn't have any tests |
9475fd92 CZ |
337 | #:phases |
338 | (modify-phases %standard-phases | |
339 | (add-before 'build 'patch-home | |
340 | (lambda* (#:key outputs #:allow-other-keys) | |
341 | (substitute* "setup.py" | |
342 | (("~/.local/share") | |
343 | (string-append (assoc-ref outputs "out") "/local/share")))))))) | |
344 | (home-page "https://electrum.org/") | |
345 | (synopsis "Bitcoin wallet") | |
346 | (description | |
347 | "Electrum is a lightweight Bitcoin client, based on a client-server | |
348 | protocol. It supports Simple Payment Verification (SPV) and deterministic key | |
349 | generation from a seed. Your secret keys are encrypted and are never sent to | |
350 | other machines/servers. Electrum does not download the Bitcoin blockchain.") | |
351 | (license license:expat))) | |
8514662b | 352 | |
a0bb0217 VC |
353 | (define-public electron-cash |
354 | (package | |
355 | (inherit electrum) | |
356 | (name "electron-cash") | |
4e86e9d7 | 357 | (version "3.3.5") |
a0bb0217 VC |
358 | (source |
359 | (origin | |
360 | (method url-fetch) | |
361 | (uri (string-append "https://electroncash.org/downloads/" | |
362 | version | |
4e86e9d7 | 363 | "/win-linux/Electron-Cash-" |
a0bb0217 VC |
364 | version |
365 | ".tar.gz")) | |
366 | (sha256 | |
367 | (base32 | |
4e86e9d7 | 368 | "185z3c5j9nvl31ga80hvahx7ghvkgmqgfjrrzw1fbs6p9jxy007w")) |
a0bb0217 VC |
369 | (modules '((guix build utils))) |
370 | (snippet | |
371 | '(begin | |
372 | ;; Delete the bundled dependencies. | |
373 | (delete-file-recursively "packages") | |
374 | #t)))) | |
375 | (home-page "https://electroncash.org/") | |
376 | (synopsis "Bitcoin Cash wallet") | |
377 | (description | |
378 | "Electroncash is a lightweight Bitcoin Cash client, based on a client-server | |
379 | protocol. It supports Simple Payment Verification (SPV) and deterministic key | |
380 | generation from a seed. Your secret keys are encrypted and are never sent to | |
381 | other machines/servers. Electroncash does not download the Bitcoin Cash blockchain.") | |
382 | (license license:expat))) | |
383 | ||
8514662b TF |
384 | (define-public monero |
385 | ;; This package bundles easylogging++ and lmdb. | |
386 | ;; The bundled easylogging++ is modified, and the changes will not be upstreamed. | |
387 | ;; The devs deem the lmdb driver too critical a consenus component, to use | |
388 | ;; the system's dynamically linked library. | |
389 | (package | |
390 | (name "monero") | |
0a551443 | 391 | (version "0.12.3.0") |
8514662b TF |
392 | (source |
393 | (origin | |
0a551443 TF |
394 | (method git-fetch) |
395 | (uri (git-reference | |
396 | (url "https://github.com/monero-project/monero") | |
397 | (commit (string-append "v" version)))) | |
136ff9a2 | 398 | (file-name (git-file-name name version)) |
0a551443 | 399 | (patches (search-patches "monero-use-system-miniupnpc.patch")) |
8514662b TF |
400 | (sha256 |
401 | (base32 | |
0a551443 | 402 | "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd")))) |
8514662b TF |
403 | (build-system cmake-build-system) |
404 | (native-inputs | |
405 | `(("doxygen" ,doxygen) | |
406 | ("googletest" ,googletest) | |
407 | ("graphviz" ,graphviz) | |
408 | ("pkg-config" ,pkg-config))) | |
409 | (inputs | |
410 | `(("bind" ,isc-bind) | |
411 | ("boost" ,boost) | |
0a551443 TF |
412 | ("zeromq" ,zeromq) |
413 | ("cppzmq" ,cppzmq) | |
8514662b | 414 | ("expat" ,expat) |
0a551443 | 415 | ("libsodium" ,libsodium) |
8514662b TF |
416 | ("libunwind" ,libunwind) |
417 | ("lmdb" ,lmdb) | |
0a551443 | 418 | ("miniupnpc" ,monero-miniupnpc) |
8514662b TF |
419 | ("openssl" ,openssl) |
420 | ("rapidjson" ,rapidjson) | |
421 | ("unbound" ,unbound))) | |
422 | (arguments | |
423 | `(#:out-of-source? #t | |
0a551443 | 424 | #:build-type "release" |
8514662b | 425 | #:configure-flags '("-DBUILD_TESTS=ON" |
fa7647c6 EF |
426 | ,@(if (string=? "aarch64-linux" (%current-system)) |
427 | '("-DARCH=armv8-a") | |
428 | '()) | |
8514662b TF |
429 | "-DBUILD_GUI_DEPS=ON") |
430 | #:phases | |
431 | (modify-phases %standard-phases | |
432 | ;; tests/core_tests need a valid HOME | |
433 | (add-before 'configure 'set-home | |
434 | (lambda _ | |
435 | (setenv "HOME" (getcwd)) | |
436 | #t)) | |
437 | (add-after 'set-home 'fix-wallet-path-for-unit-tests | |
438 | (lambda _ | |
439 | (substitute* "tests/unit_tests/serialization.cpp" | |
440 | (("\\.\\./\\.\\./\\.\\./\\.\\./") "../../")) | |
441 | #t)) | |
442 | (add-after 'fix-wallet-path-for-unit-tests 'change-log-path | |
443 | (lambda _ | |
444 | (substitute* "contrib/epee/src/mlog.cpp" | |
445 | (("epee::string_tools::get_current_module_folder\\(\\)") | |
446 | "\".bitmonero\"")) | |
447 | (substitute* "contrib/epee/src/mlog.cpp" | |
448 | (("return \\(") "return ((std::string(getenv(\"HOME\"))) / ")) | |
449 | #t)) | |
450 | (replace 'check | |
451 | (lambda _ | |
797445be TF |
452 | (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'" |
453 | "test"))) | |
8514662b TF |
454 | ;; The excluded unit tests need network access |
455 | (add-after 'check 'unit-tests | |
456 | (lambda _ | |
457 | (let ((excluded-unit-tests | |
458 | (string-join | |
459 | '("AddressFromURL.Success" | |
460 | "AddressFromURL.Failure" | |
461 | "DNSResolver.IPv4Success" | |
462 | "DNSResolver.DNSSECSuccess" | |
463 | "DNSResolver.DNSSECFailure" | |
464 | "DNSResolver.GetTXTRecord") | |
465 | ":"))) | |
797445be TF |
466 | (invoke "tests/unit_tests/unit_tests" |
467 | (string-append "--gtest_filter=-" | |
468 | excluded-unit-tests))))) | |
8514662b TF |
469 | (add-after 'install 'install-blockchain-import-export |
470 | (lambda* (#:key outputs #:allow-other-keys) | |
471 | (let* ((out (assoc-ref outputs "out")) | |
472 | (bin (string-append out "/bin"))) | |
473 | (install-file "bin/monero-blockchain-import" bin) | |
474 | (install-file "bin/monero-blockchain-export" bin))))))) | |
475 | (home-page "https://getmonero.org/") | |
476 | (synopsis "Command-line interface to the Monero currency") | |
477 | (description | |
478 | "Monero is a secure, private, untraceable currency. This package provides the | |
479 | Monero command line client and daemon.") | |
480 | (license license:bsd-3))) | |
79228a52 | 481 | |
f7e24839 | 482 | (define-public monero-gui |
79228a52 | 483 | (package |
f7e24839 | 484 | (name "monero-gui") |
3902bc5c | 485 | (version "0.12.2.0") |
79228a52 TF |
486 | (source |
487 | (origin | |
3902bc5c TF |
488 | (method git-fetch) |
489 | (uri (git-reference | |
f7e24839 | 490 | (url "https://github.com/monero-project/monero-gui") |
3902bc5c | 491 | (commit (string-append "v" version)))) |
398a96a2 | 492 | (file-name (git-file-name name version)) |
79228a52 TF |
493 | (sha256 |
494 | (base32 | |
3902bc5c | 495 | "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl")))) |
79228a52 TF |
496 | (build-system gnu-build-system) |
497 | (native-inputs | |
498 | `(("doxygen" ,doxygen) | |
499 | ("graphviz" ,graphviz) | |
6915d20f EF |
500 | ("pkg-config" ,pkg-config) |
501 | ("qttools" ,qttools))) | |
79228a52 TF |
502 | (inputs |
503 | `(("boost" ,boost) | |
504 | ("libunwind" ,libunwind) | |
505 | ("openssl" ,openssl) | |
6915d20f EF |
506 | ("qtbase" ,qtbase) |
507 | ("qtdeclarative" ,qtdeclarative) | |
508 | ("qtgraphicaleffects" ,qtgraphicaleffects) | |
509 | ("qtquickcontrols" ,qtquickcontrols) | |
1d0865c1 | 510 | ("readline" ,readline) |
79228a52 TF |
511 | ("unbound" ,unbound))) |
512 | (propagated-inputs | |
513 | `(("monero" ,monero))) | |
514 | (arguments | |
515 | `(#:phases | |
516 | (modify-phases %standard-phases | |
517 | (delete 'configure) | |
518 | (delete 'check) | |
519 | (add-before 'build 'fix-makefile-vars | |
520 | (lambda _ | |
521 | (substitute* "src/zxcvbn-c/makefile" | |
522 | (("\\?=") "=")) | |
523 | #t)) | |
524 | (add-after 'fix-makefile-vars 'fix-library-paths | |
525 | (lambda* (#:key inputs #:allow-other-keys) | |
526 | (substitute* "monero-wallet-gui.pro" | |
527 | (("-L/usr/local/lib") "") | |
528 | (("-L/usr/local/opt/openssl/lib") | |
529 | (string-append "-L" | |
530 | (assoc-ref inputs "openssl") | |
531 | "/lib")) | |
532 | (("-L/usr/local/opt/boost/lib") | |
533 | (string-append "-L" | |
534 | (assoc-ref inputs "boost") | |
535 | "/lib"))) | |
536 | #t)) | |
537 | (add-after 'fix-library-paths 'fix-monerod-path | |
538 | (lambda* (#:key inputs #:allow-other-keys) | |
539 | (substitute* "src/daemon/DaemonManager.cpp" | |
540 | (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod") | |
541 | (string-append "\""(assoc-ref inputs "monero") | |
542 | "/bin/monerod"))) | |
543 | #t)) | |
6915d20f EF |
544 | (add-after 'fix-monerod-path 'fix-qt-paths |
545 | (lambda* (#:key inputs #:allow-other-keys) | |
546 | (let* ((qttools (assoc-ref inputs "qttools")) | |
547 | (lrelease (string-append qttools "/bin/lrelease")) | |
548 | (lupdate (string-append qttools "/bin/lupdate"))) | |
549 | (substitute* "monero-wallet-gui.pro" | |
550 | (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease") lrelease) | |
551 | (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate") lupdate)) | |
552 | #t))) | |
79228a52 TF |
553 | (replace 'build |
554 | (lambda _ | |
88d5ee44 | 555 | (invoke "./build.sh"))) |
79228a52 TF |
556 | (add-after 'build 'fix-install-path |
557 | (lambda* (#:key outputs #:allow-other-keys) | |
558 | (substitute* "build/Makefile" | |
559 | (("/opt/monero-wallet-gui") | |
560 | (assoc-ref outputs "out"))) | |
561 | #t)) | |
562 | (add-before 'install 'change-dir | |
563 | (lambda _ | |
6915d20f EF |
564 | (chdir "build"))) |
565 | (add-after 'install 'wrap-executable | |
566 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
567 | (let ((out (assoc-ref outputs "out"))) | |
568 | (wrap-program (string-append out "/bin/monero-wallet-gui") | |
569 | `("QT_PLUGIN_PATH" ":" prefix | |
570 | ,(map (lambda (label) | |
571 | (string-append (assoc-ref inputs label) | |
572 | "/lib/qt5/plugins")) | |
573 | '("qtbase" "qtdeclarative"))) | |
574 | `("QML2_IMPORT_PATH" ":" prefix | |
575 | ,(map (lambda (label) | |
576 | (string-append (assoc-ref inputs label) | |
577 | "/lib/qt5/qml")) | |
578 | '("qtdeclarative" "qtgraphicaleffects" | |
579 | "qtquickcontrols")))) | |
580 | #t)))))) | |
79228a52 TF |
581 | (home-page "https://getmonero.org/") |
582 | (synopsis "Graphical user interface for the Monero currency") | |
583 | (description | |
584 | "Monero is a secure, private, untraceable currency. This package provides the | |
585 | Monero GUI client.") | |
586 | (license license:bsd-3))) | |
00d3f022 | 587 | |
f7e24839 TF |
588 | (define-public monero-core |
589 | (deprecated-package "monero-core" monero-gui)) | |
590 | ||
00d3f022 DM |
591 | (define-public python-trezor-agent |
592 | (package | |
593 | (name "python-trezor-agent") | |
594 | (version "0.9.4") | |
595 | (source | |
596 | (origin | |
39a7b720 TGR |
597 | (method git-fetch) |
598 | (uri (git-reference | |
599 | (url "https://github.com/romanz/trezor-agent.git") | |
600 | (commit (string-append "v" version)))) | |
601 | (file-name (git-file-name name version)) | |
00d3f022 | 602 | (sha256 |
39a7b720 | 603 | (base32 "15aaqk79d9y9nbsfznf2iscz12z5ispcj8kr8v5bc0sqqj2brs12")))) |
00d3f022 DM |
604 | (build-system python-build-system) |
605 | (arguments | |
606 | `(#:phases | |
607 | (modify-phases %standard-phases | |
608 | (delete 'check) | |
609 | (add-after 'install 'check | |
610 | (lambda* (#:key outputs inputs #:allow-other-keys) | |
39a7b720 | 611 | ;; Make installed package available for running the tests. |
00d3f022 DM |
612 | (add-installed-pythonpath inputs outputs) |
613 | (invoke "py.test")))))) | |
614 | (propagated-inputs | |
615 | `(("python-ecdsa" ,python-ecdsa) | |
616 | ("python-ed25519" ,python-ed25519) | |
617 | ("python-semver" ,python-semver) | |
618 | ("python-unidecode" ,python-unidecode))) | |
619 | (native-inputs | |
620 | `(("python-mock" ,python-mock) | |
621 | ("python-pytest" ,python-pytest))) | |
622 | (home-page "https://github.com/romanz/trezor-agent") | |
623 | (synopsis "TREZOR SSH and GPG host support") | |
624 | (description | |
625 | "@code{libagent} is a library that allows using TREZOR, Keepkey and | |
626 | Ledger Nano as a hardware SSH/GPG agent.") | |
627 | (license license:lgpl3))) | |
628 | ||
629 | (define-public python2-trezor-agent | |
630 | (package-with-python2 python-trezor-agent)) | |
6e9749ef DM |
631 | |
632 | (define-public python-mnemonic | |
633 | (package | |
634 | (name "python-mnemonic") | |
635 | (version "0.18") | |
636 | (source | |
637 | (origin | |
638 | (method url-fetch) | |
639 | (uri (pypi-uri "mnemonic" version)) | |
640 | (sha256 | |
641 | (base32 | |
642 | "07bzfa5di6nv5xwwcwbypnflpj50wlfczhh6q6hg8w13g5m319q2")))) | |
643 | (build-system python-build-system) | |
644 | (propagated-inputs | |
645 | `(("python-pbkdf2" ,python-pbkdf2))) | |
646 | (home-page "https://github.com/trezor/python-mnemonic") | |
647 | (synopsis "Implementation of Bitcoin BIP-0039") | |
648 | (description "@code{mnemonic} is a library that provides an implementation | |
649 | of Bitcoin BIP-0039.") | |
650 | (license license:expat))) | |
651 | ||
652 | (define-public python2-mnemonic | |
653 | (package-with-python2 python-mnemonic)) | |
96f5e2e9 DM |
654 | |
655 | (define-public python-ledgerblue | |
656 | (package | |
657 | (name "python-ledgerblue") | |
658 | (version "0.1.16") | |
659 | (source | |
660 | (origin | |
661 | (method url-fetch) | |
662 | (uri (pypi-uri "ledgerblue" version)) | |
663 | (sha256 | |
664 | (base32 | |
665 | "010mghaqh1cmz3a0ifc3f40mmyplilwlw7kpha2mzyrrff46p9gb")))) | |
666 | (build-system python-build-system) | |
667 | (propagated-inputs | |
668 | `(("python-ecpy" ,python-ecpy) | |
669 | ("python-future" ,python-future) | |
670 | ("python-hidapi" ,python-hidapi) | |
671 | ("python-pillow" ,python-pillow) | |
672 | ("python-protobuf" ,python-protobuf) | |
673 | ("python-pycrypto" ,python-pycrypto))) | |
674 | (home-page "https://github.com/LedgerHQ/blue-loader-python") | |
675 | (synopsis "Python library to communicate with Ledger Blue/Nano S") | |
676 | (description "@code{ledgerblue} is a Python library to communicate with | |
677 | Ledger Blue/Nano S.") | |
678 | (license license:asl2.0))) | |
679 | ||
680 | (define-public python2-ledgerblue | |
681 | (package-with-python2 python-ledgerblue)) | |
682 | ||
1dca32e3 DM |
683 | (define-public python-trezor |
684 | (package | |
685 | (name "python-trezor") | |
8c16b8a4 | 686 | (version "0.11.1") |
1dca32e3 DM |
687 | (source |
688 | (origin | |
689 | (method url-fetch) | |
690 | (uri (pypi-uri "trezor" version)) | |
691 | (sha256 | |
692 | (base32 | |
8c16b8a4 | 693 | "064yds8f4px0c6grkkanpdjx022g4q87ihzhkmdv9qanv0hz6hv0")))) |
1dca32e3 | 694 | (build-system python-build-system) |
b4c698c8 VC |
695 | (arguments |
696 | `(#:phases | |
697 | (modify-phases %standard-phases | |
698 | ;; Default tests run device-specific tests which fail, only run specific tests. | |
699 | (replace 'check | |
700 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
8c16b8a4 VC |
701 | ;; Delete tests that require network access. |
702 | (delete-file "trezorlib/tests/unit_tests/test_tx_api.py") | |
703 | (invoke "python" "-m" "pytest" "--pyarg" "trezorlib.tests.unit_tests")))))) | |
1dca32e3 | 704 | (propagated-inputs |
b4c698c8 | 705 | `(("python-click" ,python-click) |
8c16b8a4 | 706 | ("python-construct" ,python-construct) |
b4c698c8 | 707 | ("python-ecdsa" ,python-ecdsa) |
b4c698c8 | 708 | ("python-libusb1" ,python-libusb1) |
1dca32e3 | 709 | ("python-mnemonic" ,python-mnemonic) |
b4c698c8 VC |
710 | ("python-pyblake2" ,python-pyblake2) |
711 | ("python-requests" ,python-requests) | |
8c16b8a4 | 712 | ("python-typing-extensions" ,python-typing-extensions))) |
1dca32e3 | 713 | (native-inputs |
8c16b8a4 VC |
714 | `(("protobuf" ,protobuf) ; Tests |
715 | ("python-black" ,python-black) ; Tests | |
716 | ("python-protobuf" ,python-protobuf) ; Tests | |
717 | ("python-isort" ,python-isort) ; Tests | |
b4c698c8 VC |
718 | ("python-pyqt" ,python-pyqt) ; Tests |
719 | ("python-pytest" ,python-pytest))) ; Tests | |
1dca32e3 DM |
720 | (home-page "https://github.com/trezor/python-trezor") |
721 | (synopsis "Python library for communicating with TREZOR Hardware Wallet") | |
722 | (description "@code{trezor} is a Python library for communicating with | |
723 | TREZOR Hardware Wallet.") | |
724 | (license license:lgpl3))) | |
725 | ||
726 | (define-public python2-trezor | |
727 | (package-with-python2 python-trezor)) | |
d596fea5 | 728 | |
d6ddeffc DM |
729 | (define-public python-keepkey |
730 | (package | |
731 | (name "python-keepkey") | |
02d9e5d2 | 732 | (version "6.0.2") |
d6ddeffc DM |
733 | (source |
734 | (origin | |
735 | (method url-fetch) | |
736 | (uri (pypi-uri "keepkey" version)) | |
737 | (sha256 | |
738 | (base32 | |
02d9e5d2 | 739 | "16j8hnxj9r4b2w6kfncmny09pb1al8ppmn59qxzl3qmh1xhpy45g")))) |
d6ddeffc DM |
740 | (build-system python-build-system) |
741 | (arguments | |
742 | `(#:phases | |
743 | (modify-phases %standard-phases | |
744 | (delete 'check) | |
745 | (add-after 'install 'check | |
746 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
747 | (add-installed-pythonpath inputs outputs) | |
748 | (apply invoke "python" (find-files "tests/unit" "\\.py$"))))))) | |
749 | (propagated-inputs | |
750 | `(("python-ecdsa" ,python-ecdsa) | |
751 | ("python-hidapi" ,python-hidapi) | |
02d9e5d2 | 752 | ("python-libusb1" ,python-libusb1) |
d6ddeffc DM |
753 | ("python-mnemonic" ,python-mnemonic) |
754 | ("python-protobuf" ,python-protobuf))) | |
755 | (home-page "https://github.com/keepkey/python-keepkey") | |
756 | (synopsis "Python library for communicating with KeepKey Hardware Wallet") | |
757 | (description "@code{keepkey} is a Python library for communicating with | |
758 | the KeepKey Hardware Wallet.") | |
759 | (license license:lgpl3))) | |
760 | ||
761 | (define-public python2-keepkey | |
762 | (package-with-python2 python-keepkey)) | |
763 | ||
d596fea5 DM |
764 | (define-public ledger-agent |
765 | (package | |
766 | (name "ledger-agent") | |
767 | (version "0.9.0") | |
768 | (source | |
769 | (origin | |
770 | (method url-fetch) | |
771 | (uri (pypi-uri "ledger_agent" version)) | |
772 | (sha256 | |
773 | (base32 | |
774 | "03zj602m2rln9yvr08dswy56vzkbldp8b074ixwzz525dafblr92")))) | |
775 | (build-system python-build-system) | |
776 | (inputs | |
777 | `(("python-ledgerblue" ,python-ledgerblue) | |
778 | ("python-trezor-agent" ,python-trezor-agent))) | |
779 | (home-page "http://github.com/romanz/trezor-agent") | |
780 | (synopsis "Ledger as hardware SSH/GPG agent") | |
781 | (description "This package allows using Ledger as hardware SSH/GPG agent. | |
782 | ||
5859fd6c MB |
783 | Usage for SSH: trezor-agent foo@@example.com --connect |
784 | Usage for GPG: Initialize using trezor-gpg init \"Foo <foo@@example.com>\" | |
d596fea5 DM |
785 | Then set the environment variable GNUPGHOME to |
786 | \"${HOME}/.gnupg/trezor\".") | |
787 | (license license:lgpl3))) | |
47c8ea99 DM |
788 | |
789 | (define-public trezor-agent | |
790 | (package | |
791 | (name "trezor-agent") | |
792 | (version "0.9.0") | |
793 | (source | |
794 | (origin | |
795 | (method url-fetch) | |
796 | (uri (pypi-uri "trezor_agent" version)) | |
797 | (sha256 | |
798 | (base32 | |
799 | "1i5cdamlf3c0ym600pjklij74p8ifj9cv7xrpnrfl1b8nkadswbz")))) | |
800 | (build-system python-build-system) | |
801 | (inputs | |
802 | `(("python-trezor" ,python-trezor) | |
803 | ("python-trezor-agent" ,python-trezor-agent))) | |
804 | (home-page "http://github.com/romanz/trezor-agent") | |
805 | (synopsis "Using Trezor as hardware SSH/GPG agent") | |
806 | (description "This package allows using Trezor as a hardware SSH/GPG | |
807 | agent.") | |
808 | (license license:lgpl3))) | |
50c4d676 DM |
809 | |
810 | (define-public keepkey-agent | |
811 | (package | |
812 | (name "keepkey-agent") | |
813 | (version "0.9.0") | |
814 | (source | |
815 | (origin | |
816 | (method url-fetch) | |
817 | (uri (pypi-uri "keepkey_agent" version)) | |
818 | (sha256 | |
819 | (base32 | |
820 | "03779gvlx70i0nnry98i4pl1d92604ix5x6jgdfkrdgzqbh5vj27")))) | |
821 | (build-system python-build-system) | |
822 | (inputs | |
823 | `(("python-keepkey" ,python-keepkey) | |
824 | ("python-trezor-agent" ,python-trezor-agent))) | |
825 | (home-page "http://github.com/romanz/trezor-agent") | |
826 | (synopsis "KeepKey as hardware SSH/GPG agent") | |
827 | (description "This package allows using KeepKey as a hardware SSH/GPG | |
828 | agent.") | |
829 | (license license:lgpl3))) | |
3da86c52 AP |
830 | |
831 | (define-public python-stdnum | |
832 | (package | |
833 | (name "python-stdnum") | |
834 | (version "1.8.1") | |
835 | (source | |
836 | (origin | |
837 | (method url-fetch) | |
838 | (uri (pypi-uri "python-stdnum" version)) | |
839 | (sha256 | |
840 | (base32 | |
841 | "0hvr47q32xbyiznpmbg4r8rcvxhnf0lwf33hcpnynyik57djy5np")))) | |
842 | (build-system python-build-system) | |
843 | (home-page | |
844 | "https://arthurdejong.org/python-stdnum/") | |
845 | (synopsis | |
846 | "Python module to handle standardized number and code formats") | |
847 | (description | |
848 | "This is a Python library that aims to provide functions to handle, | |
849 | parse and validate standard numbers. | |
850 | The module supports more than 100 different number formats | |
851 | amongst which a great number of VAT and other tax numbers, | |
852 | personal identity and company identification codes, | |
853 | international standard numbers (ISBN, IBAN, EAN, etc.) | |
854 | and various other formats. | |
855 | The module also inclused implementations of the Verhoeff, | |
856 | Luhn and family of ISO/IEC 7064 check digit algorithms. ") | |
857 | (license license:lgpl2.1+))) | |
858 | ||
859 | (define-public python2-stdnum | |
860 | (package-with-python2 python-stdnum)) | |
730553d7 | 861 | |
c7299015 NG |
862 | (define-public python-duniterpy |
863 | (package | |
864 | (name "python-duniterpy") | |
352033f3 | 865 | (version "0.52.0") |
c7299015 NG |
866 | (source |
867 | (origin | |
868 | (method git-fetch) | |
869 | ;; Pypi's default URI is missing "requirements.txt" file. | |
870 | (uri (git-reference | |
7dab3e61 | 871 | (url "https://git.duniter.org/clients/python/duniterpy.git") |
c7299015 NG |
872 | (commit version))) |
873 | (file-name (git-file-name name version)) | |
874 | (sha256 | |
875 | (base32 | |
352033f3 | 876 | "07liba2d21hb8m3n6yccfamq9yq0ryywh18vs9g2sgywfsnv82lh")))) |
c7299015 | 877 | (build-system python-build-system) |
1427d888 NG |
878 | (arguments |
879 | ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'". | |
42a57df8 NG |
880 | `(#:tests? #f |
881 | #:phases | |
882 | (modify-phases %standard-phases | |
883 | (add-after 'build 'build-documentation | |
884 | (lambda _ | |
885 | (invoke "make" "docs"))) | |
886 | (add-after 'build-documentation 'install-documentation | |
887 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
888 | (let* ((out (assoc-ref outputs "out")) | |
889 | (doc (string-append out "/share/doc/" ,name))) | |
890 | (mkdir-p doc) | |
891 | (copy-recursively "docs/_build/html" doc)) | |
892 | #t))))) | |
893 | (native-inputs | |
352033f3 NG |
894 | `(("sphinx" ,python-sphinx) |
895 | ("sphinx-rtd-theme" ,python-sphinx-rtd-theme))) | |
c7299015 | 896 | (propagated-inputs |
352033f3 NG |
897 | `(("aiohttp" ,python-aiohttp) |
898 | ("attr" ,python-attr) | |
899 | ("base58" ,python-base58) | |
900 | ("jsonschema" ,python-jsonschema) | |
901 | ("libnacl" ,python-libnacl) | |
902 | ("pyaes" ,python-pyaes) | |
903 | ("pylibscrypt" ,python-pylibscrypt) | |
904 | ("pypeg2" ,python-pypeg2))) | |
9f1a2be2 | 905 | (home-page "https://git.duniter.org/clients/python/duniterpy") |
c7299015 NG |
906 | (synopsis "Python implementation of Duniter API") |
907 | (description "@code{duniterpy} is an implementation of | |
207a79b2 | 908 | @uref{https://github.com/duniter/duniter/, duniter} API. Its |
c7299015 NG |
909 | main features are: |
910 | @itemize | |
207a79b2 NG |
911 | @item Support Duniter's Basic Merkle API and protocol |
912 | @item Asynchronous/synchronous without threads | |
913 | @item Support HTTP, HTTPS and Web Socket transport for Basic Merkle API | |
914 | @item Support Elasticsearch Duniter4j API | |
c7299015 | 915 | @item Duniter signing key |
207a79b2 | 916 | @item Sign/verify and encrypt/decrypt messages with the Duniter credentials |
c7299015 NG |
917 | @end itemize") |
918 | (license license:gpl3+))) | |
919 | ||
730553d7 NG |
920 | (define-public silkaj |
921 | (package | |
922 | (name "silkaj") | |
c14b3a8d | 923 | (version "0.6.5") |
730553d7 NG |
924 | (source |
925 | (origin | |
926 | (method git-fetch) | |
927 | (uri (git-reference | |
928 | (url "https://git.duniter.org/clients/python/silkaj.git") | |
929 | (commit (string-append "v" version)))) | |
930 | (file-name (git-file-name name version)) | |
931 | (sha256 | |
932 | (base32 | |
c14b3a8d | 933 | "1fy509vsmz7rs9m3vah0ky0jvq9mxmfga6b18rkrkl2lbjk872q2")))) |
730553d7 NG |
934 | (build-system python-build-system) |
935 | (arguments | |
e627052f | 936 | `(#:tests? #f)) ;no test |
730553d7 | 937 | (inputs |
c14b3a8d NG |
938 | `(("click" ,python-click) |
939 | ("duniterpy" ,python-duniterpy) | |
940 | ("ipaddress" ,python-ipaddress) | |
941 | ("pynacl" ,python-pynacl) | |
942 | ("tabulate" ,python-tabulate))) | |
730553d7 NG |
943 | (home-page "https://silkaj.duniter.org/") |
944 | (synopsis "Command line client for Duniter network") | |
945 | (description "@code{Silkaj} is a command line client for the | |
946 | @uref{https://github.com/duniter/duniter/, Duniter} network. | |
947 | ||
948 | Its features are: | |
949 | @itemize | |
950 | @item information about currency, | |
951 | @item issuers difficulty to generate next block, | |
952 | @item network view of nodes, | |
953 | @item list of last issuers, | |
954 | @item send transactions, | |
955 | @item get account amount. | |
956 | @end itemize") | |
957 | (license license:agpl3+))) |