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