download: Don't report the progress too fast.
[jackhill/guix/guix.git] / gnu / packages / screen.scm
CommitLineData
6c3a7204
CR
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
f6b272fa 3;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
57dfc9f8 4;;; Copyright © 2015, 2017 Eric Bavier <bavier@member.fsf.org>
7c524e0f 5;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
334c00f2 6;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
20885132 7;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
b85a66b4 8;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
6c3a7204
CR
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages screen)
0aa872ea 26 #:use-module (srfi srfi-1)
6c3a7204
CR
27 #:use-module (guix licenses)
28 #:use-module (guix packages)
29 #:use-module (guix download)
30 #:use-module (guix build-system gnu)
31 #:use-module (gnu packages)
32 #:use-module (gnu packages ncurses)
5a72e466 33 #:use-module (gnu packages perl)
b95bcb8a
EB
34 #:use-module (gnu packages python)
35 #:use-module (gnu packages slang)
5a72e466 36 #:use-module (gnu packages texinfo))
6c3a7204
CR
37
38(define-public screen
39 (package
40 (name "screen")
1cbcbc86 41 (version "4.6.1")
6c3a7204
CR
42 (source (origin
43 (method url-fetch)
abc00dc4 44 (uri (string-append "mirror://gnu/screen/screen-"
6c3a7204
CR
45 version ".tar.gz"))
46 (sha256
1cbcbc86 47 (base32 "0r3wpfxnr5kw73b8ndja26jk03nfbks06iyfmgb5aqb2rdkazadb"))))
6c3a7204 48 (build-system gnu-build-system)
5a72e466
SB
49 (native-inputs
50 `(("makeinfo" ,texinfo)))
6c3a7204 51 (inputs
b3546174 52 `(("ncurses" ,ncurses)
6c3a7204 53 ("perl" ,perl)))
f6b272fa
MW
54 (arguments
55 `(#:configure-flags
66f8f5f9
LC
56 ;; By default, screen supports 16 colors, but we want 256 when
57 ;; ~/.screenrc contains 'term xterm-256color'.
58 '("--enable-colors256")))
7c524e0f 59 (home-page "https://www.gnu.org/software/screen/")
f50d2669 60 (synopsis "Full-screen window manager providing multiple terminals")
6c3a7204 61 (description
79c311b8
LC
62 "GNU Screen is a terminal window manager that multiplexes a single
63terminal between several processes. The virtual terminals each provide
64features such as a scroll-back buffer and a copy-and-paste mechanism. Screen
65then manages the different virtual terminals, allowing you to easily switch
66between them, to detach them from the current session, or even splitting the
67view to show two terminals at once.")
c4854e76 68 (license gpl2+)))
f4eae897
DT
69
70(define-public dtach
71 (package
72 (name "dtach")
4b23c4b3 73 (version "0.9")
f4eae897
DT
74 (source (origin
75 (method url-fetch)
de67e922
LF
76 (uri (string-append "mirror://sourceforge/" name "/" name "/"
77 version "/" name "-" version ".tar.gz"))
f4eae897
DT
78 (sha256
79 (base32
4b23c4b3 80 "1wwj2hlngi8qn2pisvhyfxxs8gyqjlgrrv5lz91w8ly54dlzvs9j"))))
f4eae897
DT
81 (build-system gnu-build-system)
82 (arguments
83 ;; No install target.
f228aa15
EF
84 '(#:phases
85 (modify-phases %standard-phases
86 (replace 'install
87 (lambda* (#:key outputs #:allow-other-keys)
88 (let ((out (assoc-ref outputs "out")))
b85a66b4
TGR
89 (install-file "dtach" (string-append out "/bin"))
90 (install-file "dtach.1" (string-append out "/share/man/man1"))))))
f4eae897
DT
91 ;; No check target.
92 #:tests? #f))
93 (home-page "http://dtach.sourceforge.net/")
94 (synopsis "Emulates the detach feature of screen")
95 (description
96 "dtach is a tiny program that emulates the detach feature of screen,
97allowing you to run a program in an environment that is protected from the
98controlling terminal and attach to it later.")
99 (license gpl2+)))
b95bcb8a
EB
100
101(define-public byobu
102 (package
103 (name "byobu")
104 (version "5.98")
105 (source
106 (origin
107 (method url-fetch)
108 (uri (string-append "https://launchpad.net/byobu/trunk/"
109 version "/+download/byobu_"
110 version ".orig.tar.gz"))
111 (sha256
112 (base32
113 "1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5"))
fc1adab1 114 (patches (search-patches "byobu-writable-status.patch"))))
b95bcb8a
EB
115 (build-system gnu-build-system)
116 (inputs
117 `(("python" ,python-wrapper) ;for config and session GUIs
118 ("python-newt" ,newt "python")))
119 (arguments
120 `(#:phases
121 (modify-phases %standard-phases
122 (add-before
123 'configure 'provide-locale
124 (lambda* (#:key inputs #:allow-other-keys)
125 (let ((libc (assoc-ref inputs "libc"))) ;implicit input
126 (substitute* "usr/bin/byobu.in"
127 (("locale") (string-append libc "/bin/locale"))))))
128 (add-after
129 'install 'wrap-python-scripts
130 (lambda* (#:key inputs outputs #:allow-other-keys)
131 (let* ((python (string-append (assoc-ref inputs "python")
132 "/bin/python"))
133 (out (assoc-ref outputs "out"))
134 (config (string-append out "/bin/byobu-config"))
135 (select (string-append out "/bin/byobu-select-session")))
136 (wrap-program config
137 `("BYOBU_PYTHON" = (,python))
138 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
139 (wrap-program select
140 `("BYOBU_PYTHON" = (,python)))
141 #t))))))
142 (home-page "http://byobu.co/index.html")
143 (synopsis "Text-based window manager and terminal multiplexer")
144 (description
145 "Byobu is a Japanese term for decorative, multi-panel screens that serve
146as folding room dividers. The Byobu software includes an enhanced profile,
147configuration utilities, and system status notifications for the GNU Screen
148window manager as well as the Tmux terminal multiplexer.")
149 (license gpl3+)))
334c00f2
AG
150
151(define-public reptyr
152 (package
153 (name "reptyr")
154 (version "0.6.2")
155 (source
156 (origin
157 (method url-fetch)
158 (uri (string-append "https://github.com/nelhage/reptyr/archive"
159 "/reptyr-" version ".tar.gz"))
20885132
MO
160 ;; XXX: To be removed on next reptyr release.
161 (patches (search-patches "reptyr-fix-gcc-7.patch"))
334c00f2
AG
162 (sha256
163 (base32
164 "07pfl0rkgm8m3f3jy8r9l2yvnhf8lgllpsk3mh57mhzdxq8fagf7"))))
165 (build-system gnu-build-system)
166 (arguments
167 '(#:tests? #f ; no tests
168 #:make-flags (list "CC=gcc"
169 (string-append "PREFIX=" %output))
170 #:phases (modify-phases %standard-phases (delete 'configure))))
171 (home-page "https://github.com/nelhage/reptyr")
172 (synopsis "Tool for reparenting a running program to a new terminal")
173 (description
174 "reptyr is a utility for taking an existing running program and attaching
175it to a new terminal. Started a long-running process over @code{ssh}, but have
176to leave and don't want to interrupt it? Just start a @code{screen}, use
177reptyr to grab it, and then kill the @code{ssh} session and head on home.")
0aa872ea
EF
178 ;; Reptyr currently does not support mips or aarch64.
179 (supported-systems (fold delete %supported-systems
180 '("mips64el-linux" "aarch64-linux")))
334c00f2 181 (license expat)))