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> |
57dfc9f8 | 4 | ;;; Copyright © 2015, 2017 Eric Bavier <bavier@member.fsf.org> |
45088584 | 5 | ;;; Copyright © 2016, 2017, 2019, 2020 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> |
482b8cb5 | 8 | ;;; Copyright © 2017, 2018, 2019, 2020 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) | |
26 | #:use-module (guix licenses) | |
27 | #:use-module (guix packages) | |
28 | #:use-module (guix download) | |
40d59c4e | 29 | #:use-module (guix git-download) |
6c3a7204 CR |
30 | #:use-module (guix build-system gnu) |
31 | #:use-module (gnu packages) | |
3da54cc3 | 32 | #:use-module (gnu packages hurd) |
6c3a7204 | 33 | #:use-module (gnu packages ncurses) |
5a72e466 | 34 | #:use-module (gnu packages perl) |
b95bcb8a EB |
35 | #:use-module (gnu packages python) |
36 | #:use-module (gnu packages slang) | |
5a72e466 | 37 | #:use-module (gnu packages texinfo)) |
6c3a7204 CR |
38 | |
39 | (define-public screen | |
40 | (package | |
41 | (name "screen") | |
45088584 | 42 | (version "4.8.0") |
6c3a7204 CR |
43 | (source (origin |
44 | (method url-fetch) | |
abc00dc4 | 45 | (uri (string-append "mirror://gnu/screen/screen-" |
6c3a7204 | 46 | version ".tar.gz")) |
3da54cc3 | 47 | (patches (search-patches "screen-hurd-path-max.patch")) |
6c3a7204 | 48 | (sha256 |
45088584 | 49 | (base32 "18ascpjzsy70h6hk7wpg8zmzjwgdyrdr7c6z4pg5z4l9hhyv24bf")))) |
6c3a7204 | 50 | (build-system gnu-build-system) |
5a72e466 SB |
51 | (native-inputs |
52 | `(("makeinfo" ,texinfo))) | |
6c3a7204 | 53 | (inputs |
b3546174 | 54 | `(("ncurses" ,ncurses) |
6c3a7204 | 55 | ("perl" ,perl))) |
f6b272fa MW |
56 | (arguments |
57 | `(#:configure-flags | |
66f8f5f9 LC |
58 | ;; By default, screen supports 16 colors, but we want 256 when |
59 | ;; ~/.screenrc contains 'term xterm-256color'. | |
60 | '("--enable-colors256"))) | |
7c524e0f | 61 | (home-page "https://www.gnu.org/software/screen/") |
f50d2669 | 62 | (synopsis "Full-screen window manager providing multiple terminals") |
6c3a7204 | 63 | (description |
79c311b8 LC |
64 | "GNU Screen is a terminal window manager that multiplexes a single |
65 | terminal between several processes. The virtual terminals each provide | |
66 | features such as a scroll-back buffer and a copy-and-paste mechanism. Screen | |
67 | then manages the different virtual terminals, allowing you to easily switch | |
68 | between them, to detach them from the current session, or even splitting the | |
69 | view to show two terminals at once.") | |
c4854e76 | 70 | (license gpl2+))) |
f4eae897 DT |
71 | |
72 | (define-public dtach | |
73 | (package | |
74 | (name "dtach") | |
4b23c4b3 | 75 | (version "0.9") |
f4eae897 DT |
76 | (source (origin |
77 | (method url-fetch) | |
de67e922 LF |
78 | (uri (string-append "mirror://sourceforge/" name "/" name "/" |
79 | version "/" name "-" version ".tar.gz")) | |
f4eae897 DT |
80 | (sha256 |
81 | (base32 | |
4b23c4b3 | 82 | "1wwj2hlngi8qn2pisvhyfxxs8gyqjlgrrv5lz91w8ly54dlzvs9j")))) |
f4eae897 DT |
83 | (build-system gnu-build-system) |
84 | (arguments | |
85 | ;; No install target. | |
f228aa15 EF |
86 | '(#:phases |
87 | (modify-phases %standard-phases | |
88 | (replace 'install | |
89 | (lambda* (#:key outputs #:allow-other-keys) | |
90 | (let ((out (assoc-ref outputs "out"))) | |
b85a66b4 | 91 | (install-file "dtach" (string-append out "/bin")) |
5b80aa59 MW |
92 | (install-file "dtach.1" (string-append out "/share/man/man1")) |
93 | #t)))) | |
f4eae897 DT |
94 | ;; No check target. |
95 | #:tests? #f)) | |
96 | (home-page "http://dtach.sourceforge.net/") | |
97 | (synopsis "Emulates the detach feature of screen") | |
98 | (description | |
99 | "dtach is a tiny program that emulates the detach feature of screen, | |
100 | allowing you to run a program in an environment that is protected from the | |
101 | controlling terminal and attach to it later.") | |
102 | (license gpl2+))) | |
b95bcb8a EB |
103 | |
104 | (define-public byobu | |
105 | (package | |
106 | (name "byobu") | |
482b8cb5 | 107 | (version "5.133") |
b95bcb8a EB |
108 | (source |
109 | (origin | |
110 | (method url-fetch) | |
111 | (uri (string-append "https://launchpad.net/byobu/trunk/" | |
112 | version "/+download/byobu_" | |
113 | version ".orig.tar.gz")) | |
114 | (sha256 | |
482b8cb5 | 115 | (base32 "0qvmmdnvwqbgbhn5c8asmrmjhclcl029py2d2zvmd7h5ij7s93jd")) |
fc1adab1 | 116 | (patches (search-patches "byobu-writable-status.patch")))) |
b95bcb8a EB |
117 | (build-system gnu-build-system) |
118 | (inputs | |
9e299211 | 119 | `(("python" ,python-wrapper) ; for config and session GUIs |
b95bcb8a EB |
120 | ("python-newt" ,newt "python"))) |
121 | (arguments | |
122 | `(#:phases | |
123 | (modify-phases %standard-phases | |
124 | (add-before | |
125 | 'configure 'provide-locale | |
126 | (lambda* (#:key inputs #:allow-other-keys) | |
9e299211 | 127 | (let ((libc (assoc-ref inputs "libc"))) ; implicit input |
b95bcb8a | 128 | (substitute* "usr/bin/byobu.in" |
fed90789 MW |
129 | (("locale") (string-append libc "/bin/locale"))) |
130 | #t))) | |
b95bcb8a EB |
131 | (add-after |
132 | 'install 'wrap-python-scripts | |
133 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
134 | (let* ((python (string-append (assoc-ref inputs "python") | |
135 | "/bin/python")) | |
136 | (out (assoc-ref outputs "out")) | |
137 | (config (string-append out "/bin/byobu-config")) | |
138 | (select (string-append out "/bin/byobu-select-session"))) | |
139 | (wrap-program config | |
140 | `("BYOBU_PYTHON" = (,python)) | |
141 | `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) | |
142 | (wrap-program select | |
143 | `("BYOBU_PYTHON" = (,python))) | |
144 | #t)))))) | |
97353dfb | 145 | (home-page "https://byobu.org/") |
b95bcb8a EB |
146 | (synopsis "Text-based window manager and terminal multiplexer") |
147 | (description | |
148 | "Byobu is a Japanese term for decorative, multi-panel screens that serve | |
149 | as folding room dividers. The Byobu software includes an enhanced profile, | |
150 | configuration utilities, and system status notifications for the GNU Screen | |
151 | window manager as well as the Tmux terminal multiplexer.") | |
152 | (license gpl3+))) | |
334c00f2 AG |
153 | |
154 | (define-public reptyr | |
155 | (package | |
156 | (name "reptyr") | |
01307bba | 157 | (version "0.7.0") |
334c00f2 AG |
158 | (source |
159 | (origin | |
40d59c4e TGR |
160 | (method git-fetch) |
161 | (uri (git-reference | |
162 | (url "https://github.com/nelhage/reptyr.git") | |
163 | (commit (string-append "reptyr-" version)))) | |
164 | (file-name (git-file-name name version)) | |
334c00f2 | 165 | (sha256 |
40d59c4e | 166 | (base32 "1hnijfz1ab34j2h2cxc3f43rmbclyihgn9x9wxa7jqqgb2xm71hj")))) |
334c00f2 AG |
167 | (build-system gnu-build-system) |
168 | (arguments | |
01307bba TGR |
169 | '(#:tests? #f ; no tests |
170 | #:make-flags | |
171 | (list "CC=gcc" | |
172 | (string-append "PREFIX=" (assoc-ref %outputs "out")) | |
173 | (string-append "BASHCOMPDIR=" (assoc-ref %outputs "out") | |
174 | "/etc/bash_completion.d")) | |
175 | #:phases | |
176 | (modify-phases %standard-phases | |
177 | (delete 'configure)))) ; no configure script | |
334c00f2 AG |
178 | (home-page "https://github.com/nelhage/reptyr") |
179 | (synopsis "Tool for reparenting a running program to a new terminal") | |
180 | (description | |
181 | "reptyr is a utility for taking an existing running program and attaching | |
182 | it to a new terminal. Started a long-running process over @code{ssh}, but have | |
183 | to leave and don't want to interrupt it? Just start a @code{screen}, use | |
184 | reptyr to grab it, and then kill the @code{ssh} session and head on home.") | |
24188534 EF |
185 | ;; Reptyr currently does not support mips. |
186 | (supported-systems (delete "mips64el-linux" %supported-systems)) | |
334c00f2 | 187 | (license expat))) |