summary refs log tree commit diff
path: root/gnu/packages/terminals.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/terminals.scm')
-rw-r--r--gnu/packages/terminals.scm72
1 files changed, 62 insertions, 10 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index b3979d8a41..536a48986f 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Mckinley Olsen <mck.olsen@gmail.com>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -44,6 +44,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -60,6 +61,8 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #: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-web)
   #:use-module (gnu packages python-xyz)
@@ -338,7 +341,7 @@ combining, and so on, with a simple interface.")
 (define-public picocom
   (package
     (name "picocom")
-    (version "2.2")
+    (version "3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -347,15 +350,16 @@ combining, and so on, with a simple interface.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06b2ic34dnxc73cprc5imi3iamlhsv623sbg9vj5h5rvs586dwjx"))))
+                "1vvjydqf0ax47nvdyyl67jafw5b3sfsav00xid6qpgia1gs2r72n"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("CC=gcc")
-       #:tests? #f ; No tests
+       #:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
+         (delete 'configure)            ; no configure script
          (replace 'install
+           ;; The Makefile lacks an ‘install’ target.
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
@@ -363,11 +367,12 @@ combining, and so on, with a simple interface.")
                (install-file "picocom" bin)
                (install-file "picocom.1" man)))))))
     (home-page "https://github.com/npat-efault/picocom")
-    (synopsis "Minimal dumb-terminal emulation program")
-    (description "It was designed to serve as a simple, manual, modem
-configuration, testing, and debugging tool.  It has also serves well
-as a low-tech serial communications program to allow access to all
-types of devices that provide serial consoles.")
+    (synopsis "Minimal dumb-terminal emulator")
+    (description
+     "Picocom is a minimal dumb-terminal emulation program.  It was designed to
+serve as a simple and manual modem configuration, testing, and debugging tool.
+It also serves well as a low-tech serial communications program to allow access
+to all types of devices that provide serial consoles.")
     (license license:gpl2+)))
 
 (define-public beep
@@ -1015,3 +1020,50 @@ arbitrary programs of your choice.  This is useful for browsing the history
 comfortably in a pager or editor.
 @end itemize")
     (license license:gpl3+)))
+
+(define-public eternalterminal
+  (package
+    (name "eternalterminal")
+    (version "5.1.9")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/MisterTea/EternalTerminal.git")
+               (commit (string-append "et-v" version))))
+        (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07ynkcnk3z6wafdlnzdxcd308cw1rzabxyq47ybj79lyji3wsgk7"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags '("-DBUILD_TEST=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'insert-googletests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((tests (assoc-ref inputs "googletest")))
+               (invoke "tar" "xvf" tests "-C" "external/googletest"
+                       "--strip-components=1"))))
+         (add-after 'install 'dont-provide-gtest-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (delete-file-recursively (string-append out "/include"))
+               (delete-file-recursively (string-append out "/lib")))
+             #t)))))
+    (inputs
+     `(("gflags" ,gflags)
+       ("libsodium" ,libsodium)
+       ("protobuf" ,protobuf)))
+    (native-inputs
+     `(("googletest" ,(package-source googletest))))
+    (home-page "https://mistertea.github.io/EternalTerminal/")
+    (synopsis "Remote shell that reconnects without interrupting the session")
+    (description "@dfn{Eternal Terminal} (ET) is a remote shell that
+automatically reconnects without interrupting the session.  ET uses SSH to
+initialize a secure connection.  Unlike SSH sessions, which must be killed and
+reconnected after a network outage an ET session will survive network outages
+and IP roaming.  ET provides the same core functionality as @command{mosh},
+while also supporting native scrolling and @command{tmux} control mode
+(@code{tmux -CC}).")
+    (license license:asl2.0)))