Subject: [bug#51752] [PATCH v2] gnu: Add mtm.

From: phodina <[email-masked]>
Date: Wed, 10 Nov 2021 13:41:57 +0000

Hi Nicolas,

here's updated patch. The mtm package is placed in terminals.scm with the suggestions you mentioned above.

---
Kind regards
Petr

* gnu/packages/terminals.scm (mtm): New variable.

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 8d751f6cce..b2c214275e 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -23,11 +23,13 @@
 ;;; Copyright © 2020, 2021 Marius Bakke <[email-masked]>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2020 Leo Famulari <[email-masked]>
+;;; Copyright @ 2020 luhux <[email-masked]>
 ;;; Copyright © 2021 Ekaitz Zarraga <[email-masked]>
 ;;; Copyright © 2021 Raphaël Mélotte <[email-masked]>
 ;;; Copyright © 2021 ikasero <[email-masked]>
 ;;; Copyright © 2021 Brice Waegeneire <[email-masked]>
 ;;; Copyright © 2021 Solene Rapenne <[email-masked]>
+;;; Copyright © 2021 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -424,6 +426,64 @@ (define-public mlterm
 Vietnamese, and bi-directional scripts like Arabic and Hebrew.")
     (license license:bsd-3)))

+(define-public mtm
+  (package
+    (name "mtm")
+    (version "1.2.1")
+    (source
+     (origin
+       (uri (git-reference
+             (url "https://github.com/deadpixi/mtm")
+             (commit version)))
+       (method git-fetch)
+       (sha256
+        (base32 "0gibrvah059z37jvn1qs4b6kvd4ivk2mfihmcpgx1vz6yg70zghv"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-headers
+           (lambda _
+             (substitute* "config.def.h"
+               (("ncursesw/curses.h")
+                "curses.h"))))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               ;; install binary
+               (mkdir-p (string-append out "bin/"))
+               (install-file "mtm" (string-append out "/bin"))
+               ;; install manpage
+               (mkdir-p (string-append out "share/man/man1"))
+               (install-file "mtm.1" (string-append out "/share/man/man1"))
+               ;; install terminfo
+               (mkdir-p (string-append out "share/terminfo"))
+               (invoke (string-append (assoc-ref inputs "ncurses") "/bin/tic")
+                       "-x" "-s" "-o"
+                       (string-append
+                        out "/share/terminfo")
+                       "mtm.ti"))))
+         (delete 'configure))))         ; no configure script
+    ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
+    ;; provided for usability reasons.  See <https://bugs.gnu.org/22138>.
+    (native-search-paths
+     (list (search-path-specification
+            (variable "TERMINFO_DIRS")
+            (files '("share/terminfo")))))
+    (home-page "https://github.com/deadpixi/mtm")
+    (synopsis "Micro Terminal Multiplexer")
+    (description
+     "This package provides multiplexer for the terminal focused on simplicity,
+compatibility, size and stability.")
+    (license license:gpl3+)))
+
 (define-public picocom
   (package
     (name "picocom")
--
2.33.1