summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-04-11 22:05:33 +0200
committerLudovic Courtès <ludo@gnu.org>2014-04-11 22:05:33 +0200
commit87bf526b96fa5470a49ab131d61b84e2543c651c (patch)
tree4401eb52c4dab0ab892f610d840bc80440c6ea45
parent45f5cae655a5ecdb7e8d1f5b30ab59102ac4ad76 (diff)
downloadguix-87bf526b96fa5470a49ab131d61b84e2543c651c.tar.gz
gnu: Add Mosh.
* gnu/packages/ssh.scm (mosh): New variable.
-rw-r--r--gnu/packages/ssh.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index a952890b29..7d95ff0579 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -29,6 +29,10 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages ncurses)
+  #:autoload   (gnu packages protobuf) (protobuf)
+  #:autoload   (gnu packages boost) (boost)
   #:use-module (gnu packages which)
   #:use-module (gnu packages)
   #:use-module (guix packages)
@@ -302,3 +306,45 @@ At the moment only plain text authentication is supported, should you require
 to use it with your HTTP proxy.  Digest based authentication may be supported
 in future and NTLM based authentication is most likey never be supported.")
     (license license:gpl2+)))
+
+(define-public mosh
+  (package
+    (name "mosh")
+    (version "1.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://mosh.mit.edu/mosh-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0inzfmqrab3n97m7rrmhd4xh3hjz0xva2sfl5m06w11668r0skg7"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-after
+                 'install 'wrap
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   ;; Make sure 'mosh' can find 'mosh-client' and
+                   ;; 'mosh-server'.
+                   (let* ((out (assoc-ref outputs "out"))
+                          (bin (string-append out "/bin")))
+                     (wrap-program (string-append bin "/mosh")
+                                   `("PATH" ":" prefix (,bin)))))
+                 %standard-phases)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)
+       ("perl" ,perl)
+       ("perl-io-tty" ,perl-io-tty)
+       ("zlib" ,zlib)
+       ("ncurses" ,ncurses)
+       ("protobuf" ,protobuf)
+       ("boost-headers" ,boost)))
+    (home-page "http://mosh.mit.edu/")
+    (synopsis "Remote shell tolerant to intermittent connectivity")
+    (description
+     "Remote terminal application that allows roaming, supports intermittent
+connectivity, and provides intelligent local echo and line editing of user
+keystrokes.  Mosh is a replacement for SSH.  It's more robust and responsive,
+especially over Wi-Fi, cellular, and long-distance links.")
+    (license license:gpl3+)))