[bug#34515,13/13] gnu: Add Magic-Wormhole.

Message ID 10c8f51b53835850b458bef15e2a11ab0dc0d70a.1550437064.git.leo@famulari.name
State Accepted
Headers show
Series [bug#34515,01/13] gnu: Add python-humanize. | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied

Commit Message

Leo Famulari Feb. 17, 2019, 8:57 p.m. UTC
* gnu/packages/magic-wormhole.scm (magic-wormhole): New variable.
---
 gnu/packages/magic-wormhole.scm | 53 +++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

Comments

Ricardo Wurmus Feb. 18, 2019, 8:51 a.m. UTC | #1
Leo Famulari <leo@famulari.name> writes:

> * gnu/packages/magic-wormhole.scm (magic-wormhole): New variable.
[…]
> +         ;; XXX I can't figure out how to build the docs properly.
> +         (add-after 'install 'install-docs
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (man (string-append out "/share/man/man1")))
> +               (install-file "docs/wormhole.1" man))
> +             #t)))))

What does it mean to build them properly?  Should anything besides the
man pages be built?

> +    (native-inputs
> +     `(("python-mock" ,python-mock)
> +       ;; XXX These are required for the test suite but end up being referenced
> +       ;; by the built package.
> +       ("magic-wormhole-mailbox-server" ,magic-wormhole-mailbox-server)
> +       ("magic-wormhole-transit-relay" ,magic-wormhole-transit-relay)))

Are they not supposed to be referenced by the built package?
If they are supposed to be used by the built package is it enough to
have them as inputs and not as propagated inputs?

> +    (description "Magic-Wormhole is a library and a command-line tool named
> +wormhole, which makes it possible to securely transfer arbitrary-sized files and
> +directories (or short pieces of text) from one computer to another.  The two
> +endpoints are identified by using identical \"wormhole codes\": in general, the
> +sending machine generates and displays the code, which must then be typed into
> +the receiving machine.
> +
> +The codes are short and human-pronounceable, using a phonetically-distinct
> +wordlist.  The receiving side offers tab-completion on the codewords, so usually
> +only a few characters must be typed.  Wormhole codes are single-use and do not
> +need to be memorized.")

Neat!

LGTM.  Thank you for this patch set!

Patch

diff --git a/gnu/packages/magic-wormhole.scm b/gnu/packages/magic-wormhole.scm
index cc97fec3f9..b1aec5ad9c 100644
--- a/gnu/packages/magic-wormhole.scm
+++ b/gnu/packages/magic-wormhole.scm
@@ -99,3 +99,56 @@  presents a handshake.  Two connections with identical handshakes are glued
 together, allowing them to pretend they have a direct connection.")
     (license expat)))
 
+(define-public magic-wormhole
+  (package
+    (name "magic-wormhole")
+    (version "0.11.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "magic-wormhole" version))
+        (sha256
+         (base32
+          "01fr4bi6kc6fz9n3c4qq892inrc3nf6p2djy65yvm7xkvdxncydf"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; XXX I can't figure out how to build the docs properly.
+         (add-after 'install 'install-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "docs/wormhole.1" man))
+             #t)))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ;; XXX These are required for the test suite but end up being referenced
+       ;; by the built package.
+       ("magic-wormhole-mailbox-server" ,magic-wormhole-mailbox-server)
+       ("magic-wormhole-transit-relay" ,magic-wormhole-transit-relay)))
+    (propagated-inputs
+     `(("python-autobahn" ,python-autobahn)
+       ("python-click" ,python-click)
+       ("python-hkdf" ,python-hkdf)
+       ("python-humanize" ,python-humanize)
+       ("python-hyperlink" ,python-hyperlink)
+       ("python-pynacl" ,python-pynacl)
+       ("python-spake2" ,python-spake2)
+       ("python-tqdm" ,python-tqdm)
+       ("python-twisted" ,python-twisted)
+       ("python-txtorcon" ,python-txtorcon)))
+    (home-page "https://github.com/warner/magic-wormhole")
+    (synopsis "Securely transfer data between computers")
+    (description "Magic-Wormhole is a library and a command-line tool named
+wormhole, which makes it possible to securely transfer arbitrary-sized files and
+directories (or short pieces of text) from one computer to another.  The two
+endpoints are identified by using identical \"wormhole codes\": in general, the
+sending machine generates and displays the code, which must then be typed into
+the receiving machine.
+
+The codes are short and human-pronounceable, using a phonetically-distinct
+wordlist.  The receiving side offers tab-completion on the codewords, so usually
+only a few characters must be typed.  Wormhole codes are single-use and do not
+need to be memorized.")
+    (license expat)))