;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
+;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
+ #:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system go)
+ #:use-module (guix build-system qt)
+ #:use-module (guix utils)
#:use-module (gnu packages)
+ #:use-module (gnu packages aidc)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dns)
#:use-module (gnu packages emacs)
#:use-module (gnu packages dbm)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages popt)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages gnuzilla))
(define-public bitcoin-core
(package
(name "bitcoin-core")
- (version "0.17.1")
+ (version "0.18.1")
(source (origin
(method url-fetch)
(uri
version "/bitcoin-" version ".tar.gz"))
(sha256
(base32
- "0am4pnaf2cisv172jqx6jdpzx770agm8777163lkjbw3ryslymiy"))))
+ "15mz0gmm058gmq2gdpffbw25jpv7mksyhyfws6i7mqvrapqr6zaw"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
- ("python" ,python) ; for the tests
- ("util-linux" ,util-linux) ; provides the hexdump command for tests
+ ("python" ,python) ; for the tests
+ ("util-linux" ,util-linux) ; provides the hexdump command for tests
("qttools" ,qttools)))
(inputs
- `(("bdb" ,bdb-5.3) ; with 6.2.23, there is an error: ambiguous overload
+ `(("bdb" ,bdb-4.8) ; 4.8 required for compatibility
("boost" ,boost)
("libevent" ,libevent)
("miniupnpc" ,miniupnpc)
(arguments
`(#:configure-flags
(list
- ;; We use a bdb version newer than 4.8.
- "--with-incompatible-bdb"
;; Boost is not found unless specified manually.
(string-append "--with-boost="
(assoc-ref %build-inputs "boost"))
#t))
(add-before 'check 'set-home
(lambda _
- (setenv "HOME" (getenv "TMPDIR")) ; Tests write to $HOME.
+ (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
+ #t))
+ (add-after 'check 'check-functional
+ (lambda _
+ (invoke "python3" "./test/functional/test_runner.py"
+ (string-append "--jobs=" (number->string (parallel-job-count))))
#t)))))
(home-page "https://bitcoin.org/en/")
(synopsis "Bitcoin peer-to-peer client")
line client and a client based on Qt.")
(license license:expat)))
+(define-public homebank
+ (package
+ (name "homebank")
+ (version "5.2.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://homebank.free.fr/public/homebank-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "13ampiv68y30kc0p2560g3yz8whqpwnidfcnb9lndv93b9ca767y"))))
+ (build-system glib-or-gtk-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("libsoup" ,libsoup)))
+ (arguments
+ `(#:configure-flags (list "-without-ofx"))) ; libofx is not available yet
+ (home-page "http://homebank.free.fr/")
+ (synopsis "Graphical personal accounting application")
+ (description "HomeBank allows you to manage your personal accounts at
+home. The seeks to be lightweight, simple and easy to use. It brings
+features that allow you to analyze your finances in a detailed way instantly
+and dynamically with report tools based on filtering and graphical charts.")
+ (license license:gpl2+)))
+
(define-public ledger
(package
(name "ledger")
#:tests? #f ; there are none
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-site-dir
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("DESTINATION share/emacs/site-lisp/ledger-mode")
+ "DESTINATION share/emacs/site-lisp"))
+ #t))
(add-before 'build 'patch-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((ledger (assoc-ref inputs "ledger")))
(invoke "makeinfo" "-o" target
"../source/doc/ledger-mode.texi"))
#t))
- (add-after 'install 'relocate-elisp
+ (add-after 'install 'generate-autoload
(lambda* (#:key outputs #:allow-other-keys)
(let* ((site-dir (string-append (assoc-ref outputs "out")
- "/share/emacs/site-lisp"))
- (guix-dir (string-append site-dir "/guix.d"))
- (orig-dir (string-append site-dir "/ledger-mode"))
- (dest-dir (string-append guix-dir "/ledger-mode")))
- (mkdir-p guix-dir)
- (rename-file orig-dir dest-dir)
- (emacs-generate-autoloads ,name dest-dir)
- #t))))))
+ "/share/emacs/site-lisp")))
+ (emacs-generate-autoloads ,name site-dir))
+ #t)))))
(inputs
`(("ledger" ,ledger)))
(native-inputs
(define-public electrum
(package
(name "electrum")
- (version "3.3.6")
+ (version "3.3.8")
(source
(origin
(method url-fetch)
version "/Electrum-"
version ".tar.gz"))
(sha256
- (base32 "0am5ki3z0yvhrz16vp2jjy5fkxxqph0mj9qqpbw3kpql65shykwz"))
+ (base32 "1g00cj1pmckd4xis8r032wmraiv3vd3zc803hnyxa2bnhj8z3bg2"))
(modules '((guix build utils)))
(snippet
'(begin
(package
(inherit electrum)
(name "electron-cash")
- (version "4.0.7")
+ (version "4.0.12")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://electroncash.org/downloads/"
- version
- "/win-linux/Electron-Cash-"
- version
- ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Electron-Cash/Electron-Cash.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0xswmr68cm1c77lzisi3z812jzqczm9dfrshfhdq42zz5kaz4gnn"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Delete the bundled dependencies.
- (delete-file-recursively "packages")
- #t))))
+ "0gidrx8499v7rig7ljhd70wssshs1qm0gp1553g70i323hcbf62x"))))
+ (inputs
+ `(,@(package-inputs electrum)
+ ("libsecp256k1", libsecp256k1)
+ ("python-dateutil", python-dateutil)
+ ("python-dnspython", python-dnspython)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments electrum)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'use-libsecp256k1-input
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/secp256k1.py"
+ (("library_paths = .* 'libsecp256k1.so.0'.")
+ (string-append "library_paths = ('" (assoc-ref inputs "libsecp256k1") "/lib/libsecp256k1.so.0'")))))))))
(home-page "https://electroncash.org/")
(synopsis "Bitcoin Cash wallet")
(description
(define-public monero
;; This package bundles easylogging++ and lmdb.
- ;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
+ ;; The bundled easylogging++ is modified, and the changes will not be
+ ;; upstreamed.
;; The devs deem the lmdb driver too critical a consenus component, to use
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.12.3.0")
+ (version "0.15.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/monero-project/monero")
- (commit (string-append "v" version))))
+ (url "https://github.com/monero-project/monero.git")
+ (commit (string-append "v" version))
+ (recursive? #t)))
(file-name (git-file-name name version))
(patches (search-patches "monero-use-system-miniupnpc.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete bundled dependencies.
+ (for-each
+ delete-file-recursively
+ '("external/miniupnp" "external/rapidjson"
+ "external/unbound"))
+ #t))
(sha256
(base32
- "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
+ "0sypa235lf2bbib4b71xpaw39h9304slgsvnsz8wmy9fq1zx009m"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
- ("googletest" ,googletest)
+ ("git" ,git)
("graphviz" ,graphviz)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("protobuf" ,protobuf)
+ ("python" ,python)
+ ("qttools" ,qttools)))
(inputs
- `(("bind" ,isc-bind)
- ("boost" ,boost)
- ("zeromq" ,zeromq)
+ `(("boost" ,boost)
("cppzmq" ,cppzmq)
("expat" ,expat)
+ ("hidapi" ,hidapi)
("libsodium" ,libsodium)
("libunwind" ,libunwind)
- ("lmdb" ,lmdb)
- ("miniupnpc" ,monero-miniupnpc)
+ ("libusb" ,libusb)
+ ("miniupnpc" ,miniupnpc)
("openssl" ,openssl)
+ ("protobuf" ,protobuf)
("rapidjson" ,rapidjson)
- ("unbound" ,unbound)))
+ ("readline" ,readline)
+ ("unbound" ,unbound)
+ ("xz" ,xz)
+ ("zeromq" ,zeromq)))
(arguments
`(#:out-of-source? #t
- #:build-type "release"
- #:configure-flags '("-DBUILD_TESTS=ON"
- ,@(if (string=? "aarch64-linux" (%current-system))
- '("-DARCH=armv8-a")
- '())
- "-DBUILD_GUI_DEPS=ON")
+ #:configure-flags
+ (list "-DARCH=default"
+ "-DBUILD_TESTS=ON"
+ "-DBUILD_GUI_DEPS=ON"
+ (string-append "-DReadline_ROOT_DIR="
+ (assoc-ref %build-inputs "readline")))
#:phases
(modify-phases %standard-phases
;; tests/core_tests need a valid HOME
(lambda _
(setenv "HOME" (getcwd))
#t))
- (add-after 'set-home 'fix-wallet-path-for-unit-tests
- (lambda _
- (substitute* "tests/unit_tests/serialization.cpp"
- (("\\.\\./\\.\\./\\.\\./\\.\\./") "../../"))
- #t))
- (add-after 'fix-wallet-path-for-unit-tests 'change-log-path
+ (add-after 'set-home 'change-log-path
(lambda _
(substitute* "contrib/epee/src/mlog.cpp"
(("epee::string_tools::get_current_module_folder\\(\\)")
- "\".bitmonero\""))
- (substitute* "contrib/epee/src/mlog.cpp"
- (("return \\(") "return ((std::string(getenv(\"HOME\"))) / "))
+ "\".bitmonero\"")
+ (("return \\(")
+ "return ((std::string(getenv(\"HOME\"))) / "))
#t))
+ (add-after 'change-log-path 'fix-file-permissions-for-tests
+ (lambda _
+ (for-each make-file-writable
+ (find-files "tests/data/" "wallet_9svHk1.*"))
+ #t))
+ ;; Only try tests that don't need access to network or system
(replace 'check
(lambda _
- (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
- "test")))
- ;; The excluded unit tests need network access
+ (invoke "make" "ARGS=-R 'hash|core_tests' --verbose" "test")))
(add-after 'check 'unit-tests
(lambda _
(let ((excluded-unit-tests
"DNSResolver.IPv4Success"
"DNSResolver.DNSSECSuccess"
"DNSResolver.DNSSECFailure"
- "DNSResolver.GetTXTRecord")
+ "DNSResolver.GetTXTRecord"
+ "is_hdd.linux_os_root")
":")))
(invoke "tests/unit_tests/unit_tests"
(string-append "--gtest_filter=-"
excluded-unit-tests)))))
- (add-after 'install 'install-blockchain-import-export
+ (add-after 'install 'install-librandomx
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "bin/monero-blockchain-import" bin)
- (install-file "bin/monero-blockchain-export" bin)))))))
- (home-page "https://getmonero.org/")
+ (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
+ (install-file "external/randomx/librandomx.a" lib)
+ #t)))
+ (add-after 'install 'delete-dead-links
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (delete-file (string-append out "/lib/libprotobuf.so"))
+ (delete-file (string-append out "/lib/libusb-1.0.so"))
+ #t))))))
+ (home-page "https://web.getmonero.org/")
(synopsis "Command-line interface to the Monero currency")
(description
- "Monero is a secure, private, untraceable currency. This package provides the
-Monero command line client and daemon.")
+ "Monero is a secure, private, untraceable currency. This package provides
+the Monero command line client and daemon.")
(license license:bsd-3)))
(define-public monero-gui
(package
(name "monero-gui")
- (version "0.12.2.0")
+ (version "0.15.0.3")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/monero-project/monero-gui")
+ (url "https://github.com/monero-project/monero-gui.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))))
- (build-system gnu-build-system)
+ "1v2mk6qp7dfdj4j4cilxp0s0phfwwnmjvpvjrz6jzzlpvbnavkr0"))))
+ (build-system qt-build-system)
(native-inputs
- `(("doxygen" ,doxygen)
- ("graphviz" ,graphviz)
- ("pkg-config" ,pkg-config)
+ `(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(inputs
`(("boost" ,boost)
+ ("hidapi" ,hidapi)
+ ("libsodium" ,libsodium)
("libunwind" ,libunwind)
+ ("libusb" ,libusb)
("openssl" ,openssl)
+ ("protobuf" ,protobuf)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qtgraphicaleffects" ,qtgraphicaleffects)
+ ("qtlocation" ,qtlocation)
+ ("qtmultimedia" ,qtmultimedia)
("qtquickcontrols" ,qtquickcontrols)
- ("readline" ,readline)
+ ("qtquickcontrols2",qtquickcontrols2)
+ ("qtsvg" ,qtsvg)
+ ("qtxmlpatterns" ,qtxmlpatterns)
("unbound" ,unbound)))
(propagated-inputs
`(("monero" ,monero)))
(arguments
- `(#:phases
+ `(#:tests? #f ; No tests
+ #:phases
(modify-phases %standard-phases
- (delete 'configure)
- (delete 'check)
- (add-before 'build 'fix-makefile-vars
+ (add-after 'unpack 'fix-makefile-vars
(lambda _
(substitute* "src/zxcvbn-c/makefile"
(("\\?=") "="))
#t))
- (add-after 'fix-makefile-vars 'fix-library-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "monero-wallet-gui.pro"
- (("-L/usr/local/lib") "")
- (("-L/usr/local/opt/openssl/lib")
- (string-append "-L"
- (assoc-ref inputs "openssl")
- "/lib"))
- (("-L/usr/local/opt/boost/lib")
- (string-append "-L"
- (assoc-ref inputs "boost")
- "/lib")))
- #t))
- (add-after 'fix-library-paths 'fix-monerod-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/daemon/DaemonManager.cpp"
- (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
- (string-append "\""(assoc-ref inputs "monero")
- "/bin/monerod")))
- #t))
- (add-after 'fix-monerod-path 'fix-qt-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((qttools (assoc-ref inputs "qttools"))
- (lrelease (string-append qttools "/bin/lrelease"))
- (lupdate (string-append qttools "/bin/lupdate")))
+ (add-after 'fix-makefile-vars 'fix-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((boost (assoc-ref inputs "boost"))
+ (monero (assoc-ref inputs "monero"))
+ (openssl (assoc-ref inputs "openssl"))
+ (qttools (assoc-ref inputs "qttools"))
+ (out (assoc-ref outputs "out")))
(substitute* "monero-wallet-gui.pro"
- (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease") lrelease)
- (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate") lupdate))
+ (("-L/usr/local/lib")
+ "")
+ (("-L/usr/local/opt/openssl/lib")
+ (string-append "-L" openssl "/lib"))
+ (("-L/usr/local/opt/boost/lib")
+ (string-append "-L" boost "/lib"))
+ (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
+ (string-append qttools "/bin/lrelease"))
+ (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate")
+ (string-append qttools "/bin/lupdate")))
+ (substitute* "deployment.pri"
+ (("/opt/\\$\\$\\{TARGET\\}/bin")
+ (string-append out "/bin")))
+ (substitute* "src/daemon/DaemonManager.cpp"
+ (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
+ (string-append "\"" monero "/bin/monerod")))
#t)))
- (replace 'build
+ (add-after 'fix-paths 'make-qt-deterministic
(lambda _
- (invoke "./build.sh")))
- (add-after 'build 'fix-install-path
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "build/Makefile"
- (("/opt/monero-wallet-gui")
- (assoc-ref outputs "out")))
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
#t))
- (add-before 'install 'change-dir
+ (add-after 'make-qt-deterministic 'fix-version
(lambda _
- (chdir "build")))
- (add-after 'install 'wrap-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/monero-wallet-gui")
- `("QT_PLUGIN_PATH" ":" prefix
- ,(map (lambda (label)
- (string-append (assoc-ref inputs label)
- "/lib/qt5/plugins"))
- '("qtbase" "qtdeclarative")))
- `("QML2_IMPORT_PATH" ":" prefix
- ,(map (lambda (label)
- (string-append (assoc-ref inputs label)
- "/lib/qt5/qml"))
- '("qtdeclarative" "qtgraphicaleffects"
- "qtquickcontrols"))))
- #t))))))
- (home-page "https://getmonero.org/")
+ (substitute* "build.sh"
+ (("echo .*> version.js")
+ ""))
+ (with-output-to-file "version.js"
+ (lambda _
+ (format #t
+ "var GUI_VERSION = \"~a\"~@
+ var GUI_MONERO_VERSION = \"~a\"~%"
+ ,version
+ ,(package-version monero))))
+ #t))
+ (replace 'configure
+ (lambda _
+ (mkdir-p "build")
+ (chdir "build")
+ (invoke "qmake" "../monero-wallet-gui.pro" "CONFIG+=release")))
+ (add-before 'build 'build-zxcvbn-c
+ (lambda _
+ (invoke "make" "-C" "../src/zxcvbn-c"))))))
+ (home-page "https://web.getmonero.org/")
(synopsis "Graphical user interface for the Monero currency")
(description
- "Monero is a secure, private, untraceable currency. This package provides the
-Monero GUI client.")
+ "Monero is a secure, private, untraceable currency. This package provides
+the Monero GUI client.")
(license license:bsd-3)))
(define-public monero-core
Ledger Nano as a hardware SSH/GPG agent.")
(license license:lgpl3)))
-(define-public python2-trezor-agent
- (package-with-python2 python-trezor-agent))
-
(define-public python-mnemonic
(package
(name "python-mnemonic")
- (version "0.18")
+ (version "0.19")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mnemonic" version))
(sha256
- (base32
- "07bzfa5di6nv5xwwcwbypnflpj50wlfczhh6q6hg8w13g5m319q2"))))
+ (base32 "0cd9prmdj8wzdmc7lxbf9lz0xrlkvak5ignag406mmfbn81fndsf"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pbkdf2" ,python-pbkdf2)))
TREZOR Hardware Wallet.")
(license license:lgpl3)))
-(define-public python2-trezor
- (package-with-python2 python-trezor))
-
(define-public python-keepkey
(package
(name "python-keepkey")
(define-public python-duniterpy
(package
(name "python-duniterpy")
- (version "0.54.3")
+ (version "0.55.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1k3rpfc9zxj9z50cr4zjfyzdla9ap5mj1v1rlcriqmflgb5cmiba"))))
+ "07zsbbkzmnvyv5v0vw2d42vw3ar4iqhlidy9376ysk4ldlj1igf7"))))
(build-system python-build-system)
(arguments
;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
(define-public silkaj
(package
(name "silkaj")
- (version "0.7.2")
+ (version "0.7.3")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "059k2kil2l8jcm4wp86w1z7y8p26rww7d3l5fzds0qq2dzvkvzgs"))))
+ "0yk2574yb0d0k0rg7qf0pkmjidblsad04x8hhqpy9k80rvgjcr5w"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;no test
@item get account amount.
@end itemize")
(license license:agpl3+)))
+
+(define-public grisbi
+ (package
+ (name "grisbi")
+ (version "1.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/grisbi/grisbi%20stable/"
+ (version-major+minor version) ".x/" version
+ "/grisbi-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1piiyyxjsjbw9gcqydvknzxmmfgh8kdqal12ywrxyxih2afwnvbw"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:configure-flags (list "--without-ofx")))
+ (propagated-inputs
+ `(("dconf" ,dconf)))
+ (native-inputs
+ `(("glib" ,glib "bin") ; glib-compile-schemas
+ ("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("libgsf" ,libgsf)))
+ (synopsis "Personal accounting application")
+ (description "Grisbi is a personal accounting application written by
+French developers that is designed to follow French accounting rules.
+Grisbi can manage multiple accounts, currencies and users. It manages
+third party, expenditure and receipt categories, budgetary lines,
+financial years, budget estimates, bankcard management and other
+information.")
+ (home-page "http://grisbi.org")
+ (license license:gpl2+)))
+
+(define-public trezord
+ (package
+ (name "trezord")
+ (version "2.0.17")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trezor/trezord-go.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/trezor/trezord-go"))
+ (home-page "https://trezor.io")
+ (synopsis "Trezor Communication Daemon aka Trezor Bridge (written in Go)")
+ (description "This allows a Trezor hardware wallet to communicate to the
+Trezor wallet.")
+ (license license:lgpl3+)))
+
+(define-public bitcoin-abc
+ (package
+ (inherit bitcoin-core)
+ (name "bitcoin-abc")
+ (version "0.20.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.bitcoinabc.org/"
+ version "/src/bitcoin-abc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0py5ilfi4r8qh5r9637vwch27sqrrn0dg9rz8bccnj3lp2xpzw27"))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python) ; for the tests
+ ("util-linux" ,util-linux) ; provides the hexdump command for tests
+ ("qttools" ,qttools)))
+ (inputs
+ `(("bdb" ,bdb-5.3)
+ ("boost" ,boost)
+ ("libevent" ,libevent)
+ ("miniupnpc" ,miniupnpc)
+ ("openssl" ,openssl)
+ ("protobuf" ,protobuf)
+ ("qrencode" ,qrencode)
+ ("qtbase" ,qtbase)
+ ("zlib" ,zlib)))
+ (home-page "https://www.bitcoinabc.org/")
+ (synopsis "Bitcoin ABC peer-to-peer full node for the Bitcoin Cash protocol")
+ (description
+ "Bitcoin Cash brings sound money to the world, fulfilling the original
+promise of Bitcoin as Peer-to-Peer Electronic Cash. Merchants and users are
+empowered with low fees and reliable confirmations is a digital currency that
+enables instant payments to anyone anywhere in the world. It uses
+peer-to-peer technology to operate without central authority: managing
+transactions and issuing money are carried out collectively by the network.
+As a fork it implemented changes lowering the time between blocks and now
+offers confimations after less than 5 seconds and have significantly lower
+fees that BTC. Bitcoin ABC is the reference implementation of the Bitcoin
+Cash protocol. This package provides the Bitcoin Cash command line client and
+a client based on Qt. This is a fork of Bitcoin Core.")))
+
+(define-public libofx
+ (package
+ (name "libofx")
+ (version "0.9.15")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libofx/libofx")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jx56ma351p8af8dvavygjwf6ipa7qbgq7bpdsymwj27apdnixfy"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ (list (string-append "--with-opensp-includes="
+ (assoc-ref %build-inputs "opensp")
+ "/include/OpenSP"))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gengetopt" ,gengetopt)
+ ("help2man" ,help2man)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("curl" ,curl)
+ ("libxml++-2" ,libxml++-2)
+ ("opensp" ,opensp)))
+ (home-page "http://libofx.sourceforge.net/")
+ (synopsis "Library supporting the Open Financial Exchange format")
+ (description
+ "The LibOFX library is an API designed to allow applications to very easily
+support OFX command responses, usually provided by financial institutions. The
+following three utilities are included with the library:
+@enumerate
+@item @code{ofxdump}
+@item @code{ofx2qif}
+@item @code{ofxconnect}
+@end enumerate")
+ (license license:gpl2+)))
+
+(define-public opensp
+ (package
+ (name "opensp")
+ (version "1.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/openjade/opensp/"
+ version "/OpenSP-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("gettext" ,gettext-minimal)))
+ (inputs
+ `(("docbook-xml" ,docbook-xml-4.1.2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("xmlto" ,xmlto)))
+ (arguments
+ `(;; TODO: Fix and enable tests.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-docbook-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+ "/xml/dtd/docbook"))
+ (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
+ "/xml/xsl/docbook-xsl-"
+ ,(package-version docbook-xsl))))
+ (substitute* (find-files "docsrc" "\\.xml$")
+ (("/usr/share/sgml/docbook/xml-dtd-4.1.2") xmldoc)
+ (("http://.*/docbookx\\.dtd")
+ (string-append xmldoc "/docbookx.dtd")))
+ ;; Directly pass the path to the stylesheet to xmlto.
+ (substitute* "docsrc/Makefile.in"
+ (("\\$\\(XMLTO\\)")
+ (string-append "$(XMLTO) -x " xsldoc
+ "/manpages/docbook.xsl")))
+ #t))))))
+ (home-page "http://openjade.sourceforge.net/")
+ (synopsis "Suite of SGML/XML processing tools")
+ (description "OpenSP is an object-oriented toolkit for SGML parsing and
+entity management.")
+ (license
+ ;; expat license with added clause regarding advertising
+ (license:non-copyleft
+ "file://COPYING"
+ "See COPYING in the distribution."))))