Subject: Update python-trezor-agent and trezor-agent

From: Vagrant Cascadian <[email-masked]>
Date: Sun, 10 Feb 2019 21:48:15 -0800

This patch series updates python-trezor-agent (0.13.0) and trezor-agent
(0.10.0).

It fixes (at least for trezor):

 #34377: (ledger|trezor|keepkey)-agent execute shell code with python interpreter

It depends on a few unmerged patches:

 #34365: gnu: Add python-daemon.
 #34396: gnu: Add python-pymsgbox.
 #34398: gnu: Add python-backports-shutil-which.

live well,
  vagrant

From 58a152802b9a2d364033e4f1be955f021bd40f58 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <[email-masked]>
Date: Thu, 7 Feb 2019 00:07:15 +0000
Subject: [PATCH 1/2] gnu: python-trezor-agent: Update to 0.13.0.

* gnu/packages/finance.scm: use-module gnupg.
  (python-trezor-agent): Update to 0.13.0.

  [propagated-inputs]: Add python-backports-shutil-which,
  python-configargparse, python-daemon, python-docutils, python-mnemonic,
  python-pymsgbox, python-wheel.
  [native-inputs]: Add gnupg.
  [synopsis]: generalize description to hardware wallets.
---
 gnu/packages/finance.scm | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index e44be713f2..6978f0c807 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -45,6 +45,7 @@
   #:use-module (gnu packages dns)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages libedit)
@@ -591,7 +592,7 @@ Monero GUI client.")
 (define-public python-trezor-agent
   (package
     (name "python-trezor-agent")
-    (version "0.9.4")
+    (version "0.13.0")
     (source
      (origin
        (method git-fetch)
@@ -600,7 +601,7 @@ Monero GUI client.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15aaqk79d9y9nbsfznf2iscz12z5ispcj8kr8v5bc0sqqj2brs12"))))
+        (base32 "0i4igkxi8fwdlbhg6nx27lhnc9v9nmrw4j5fvpnc202n6yjlc7x7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -612,15 +613,24 @@ Monero GUI client.")
              (add-installed-pythonpath inputs outputs)
              (invoke "py.test"))))))
     (propagated-inputs
-     `(("python-ecdsa" ,python-ecdsa)
+     `(("python-backports-shutil-which"
+        ,python-backports-shutil-which)
+       ("python-configargparse" ,python-configargparse)
+       ("python-daemon" ,python-daemon)
+       ("python-docutils" ,python-docutils)
+       ("python-ecdsa" ,python-ecdsa)
        ("python-ed25519" ,python-ed25519)
+       ("python-mnemonic" ,python-mnemonic)
+       ("python-pymsgbox" ,python-pymsgbox)
        ("python-semver" ,python-semver)
-       ("python-unidecode" ,python-unidecode)))
+       ("python-unidecode" ,python-unidecode)
+       ("python-wheel" ,python-wheel)))
     (native-inputs
-     `(("python-mock" ,python-mock)
+     `(("gnupg" ,gnupg)
+       ("python-mock" ,python-mock)
        ("python-pytest" ,python-pytest)))
     (home-page "https://github.com/romanz/trezor-agent")
-    (synopsis "TREZOR SSH and GPG host support")
+    (synopsis "Use hardware wallets as SSH and GPG agent")
     (description
      "@code{libagent} is a library that allows using TREZOR, Keepkey and
 Ledger Nano as a hardware SSH/GPG agent.")
-- 
2.20.1

From cd804338e1f1bf9b16ec08ced760d4d08818f8f4 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <[email-masked]>
Date: Thu, 7 Feb 2019 00:07:49 +0000
Subject: [PATCH 2/2] gnu: trezor-agent: Update 0.10.0.

    Fixes <https://bugs.gnu.org/34377>.

* gnu/packages/finance.scm (trezor-agent): Update to 0.10.0.
  [phases] Add fixup-agent-py phase to install trezor_agent.py without shell
  wrapper.
  [native-inputs] Add python-hidapi.
---
 gnu/packages/finance.scm | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 6978f0c807..59b5a85fb2 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -799,18 +799,31 @@ Then set the environment variable GNUPGHOME to
 (define-public trezor-agent
   (package
     (name "trezor-agent")
-    (version "0.9.0")
+    (version "0.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trezor_agent" version))
        (sha256
         (base32
-         "1i5cdamlf3c0ym600pjklij74p8ifj9cv7xrpnrfl1b8nkadswbz"))))
+         "144657c7bn0a667dq5fv5r6j7iilxf3h9agj29v1m2qpq40g0az8"))))
+    (arguments
+     ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'wrap 'fixup-agent-py
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               ;; overwrite the wrapper with the real thing.
+               (install-file "./trezor_agent.py"
+                             (string-append out "/bin/"))
+             #t))))))
     (build-system python-build-system)
     (inputs
      `(("python-trezor" ,python-trezor)
        ("python-trezor-agent" ,python-trezor-agent)))
+    (native-inputs
+     `(("python-hidapi" ,python-hidapi)))
     (home-page "http://github.com/romanz/trezor-agent")
     (synopsis "Using Trezor as hardware SSH/GPG agent")
     (description "This package allows using Trezor as a hardware SSH/GPG
-- 
2.20.1