Commit | Line | Data |
---|---|---|
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 |
62 | terminal between several processes. The virtual terminals each provide | |
63 | features such as a scroll-back buffer and a copy-and-paste mechanism. Screen | |
64 | then manages the different virtual terminals, allowing you to easily switch | |
65 | between them, to detach them from the current session, or even splitting the | |
66 | view 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, | |
95 | allowing you to run a program in an environment that is protected from the | |
96 | controlling 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 | |
144 | as folding room dividers. The Byobu software includes an enhanced profile, | |
145 | configuration utilities, and system status notifications for the GNU Screen | |
146 | window 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 | |
171 | it to a new terminal. Started a long-running process over @code{ssh}, but have | |
172 | to leave and don't want to interrupt it? Just start a @code{screen}, use | |
173 | reptyr 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))) |