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> |
01307bba | 8 | ;;; Copyright © 2017, 2018, 2019 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) | |
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") | |
45088584 | 41 | (version "4.8.0") |
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 | |
45088584 | 47 | (base32 "18ascpjzsy70h6hk7wpg8zmzjwgdyrdr7c6z4pg5z4l9hhyv24bf")))) |
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 |
63 | terminal between several processes. The virtual terminals each provide | |
64 | features such as a scroll-back buffer and a copy-and-paste mechanism. Screen | |
65 | then manages the different virtual terminals, allowing you to easily switch | |
66 | between them, to detach them from the current session, or even splitting the | |
67 | view 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 | 89 | (install-file "dtach" (string-append out "/bin")) |
5b80aa59 MW |
90 | (install-file "dtach.1" (string-append out "/share/man/man1")) |
91 | #t)))) | |
f4eae897 DT |
92 | ;; No check target. |
93 | #:tests? #f)) | |
94 | (home-page "http://dtach.sourceforge.net/") | |
95 | (synopsis "Emulates the detach feature of screen") | |
96 | (description | |
97 | "dtach is a tiny program that emulates the detach feature of screen, | |
98 | allowing you to run a program in an environment that is protected from the | |
99 | controlling terminal and attach to it later.") | |
100 | (license gpl2+))) | |
b95bcb8a EB |
101 | |
102 | (define-public byobu | |
103 | (package | |
104 | (name "byobu") | |
9e299211 | 105 | (version "5.127") |
b95bcb8a EB |
106 | (source |
107 | (origin | |
108 | (method url-fetch) | |
109 | (uri (string-append "https://launchpad.net/byobu/trunk/" | |
110 | version "/+download/byobu_" | |
111 | version ".orig.tar.gz")) | |
112 | (sha256 | |
113 | (base32 | |
9e299211 | 114 | "0fznlj454vgxgzfw3avmvvjpawggs66da5l8k6v0lnzzd75wgbsb")) |
fc1adab1 | 115 | (patches (search-patches "byobu-writable-status.patch")))) |
b95bcb8a EB |
116 | (build-system gnu-build-system) |
117 | (inputs | |
9e299211 | 118 | `(("python" ,python-wrapper) ; for config and session GUIs |
b95bcb8a EB |
119 | ("python-newt" ,newt "python"))) |
120 | (arguments | |
121 | `(#:phases | |
122 | (modify-phases %standard-phases | |
123 | (add-before | |
124 | 'configure 'provide-locale | |
125 | (lambda* (#:key inputs #:allow-other-keys) | |
9e299211 | 126 | (let ((libc (assoc-ref inputs "libc"))) ; implicit input |
b95bcb8a | 127 | (substitute* "usr/bin/byobu.in" |
fed90789 MW |
128 | (("locale") (string-append libc "/bin/locale"))) |
129 | #t))) | |
b95bcb8a EB |
130 | (add-after |
131 | 'install 'wrap-python-scripts | |
132 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
133 | (let* ((python (string-append (assoc-ref inputs "python") | |
134 | "/bin/python")) | |
135 | (out (assoc-ref outputs "out")) | |
136 | (config (string-append out "/bin/byobu-config")) | |
137 | (select (string-append out "/bin/byobu-select-session"))) | |
138 | (wrap-program config | |
139 | `("BYOBU_PYTHON" = (,python)) | |
140 | `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) | |
141 | (wrap-program select | |
142 | `("BYOBU_PYTHON" = (,python))) | |
143 | #t)))))) | |
97353dfb | 144 | (home-page "https://byobu.org/") |
b95bcb8a EB |
145 | (synopsis "Text-based window manager and terminal multiplexer") |
146 | (description | |
147 | "Byobu is a Japanese term for decorative, multi-panel screens that serve | |
148 | as folding room dividers. The Byobu software includes an enhanced profile, | |
149 | configuration utilities, and system status notifications for the GNU Screen | |
150 | window manager as well as the Tmux terminal multiplexer.") | |
151 | (license gpl3+))) | |
334c00f2 AG |
152 | |
153 | (define-public reptyr | |
154 | (package | |
155 | (name "reptyr") | |
01307bba | 156 | (version "0.7.0") |
334c00f2 AG |
157 | (source |
158 | (origin | |
40d59c4e TGR |
159 | (method git-fetch) |
160 | (uri (git-reference | |
161 | (url "https://github.com/nelhage/reptyr.git") | |
162 | (commit (string-append "reptyr-" version)))) | |
163 | (file-name (git-file-name name version)) | |
334c00f2 | 164 | (sha256 |
40d59c4e | 165 | (base32 "1hnijfz1ab34j2h2cxc3f43rmbclyihgn9x9wxa7jqqgb2xm71hj")))) |
334c00f2 AG |
166 | (build-system gnu-build-system) |
167 | (arguments | |
01307bba TGR |
168 | '(#:tests? #f ; no tests |
169 | #:make-flags | |
170 | (list "CC=gcc" | |
171 | (string-append "PREFIX=" (assoc-ref %outputs "out")) | |
172 | (string-append "BASHCOMPDIR=" (assoc-ref %outputs "out") | |
173 | "/etc/bash_completion.d")) | |
174 | #:phases | |
175 | (modify-phases %standard-phases | |
176 | (delete 'configure)))) ; no configure script | |
334c00f2 AG |
177 | (home-page "https://github.com/nelhage/reptyr") |
178 | (synopsis "Tool for reparenting a running program to a new terminal") | |
179 | (description | |
180 | "reptyr is a utility for taking an existing running program and attaching | |
181 | it to a new terminal. Started a long-running process over @code{ssh}, but have | |
182 | to leave and don't want to interrupt it? Just start a @code{screen}, use | |
183 | reptyr to grab it, and then kill the @code{ssh} session and head on home.") | |
24188534 EF |
184 | ;; Reptyr currently does not support mips. |
185 | (supported-systems (delete "mips64el-linux" %supported-systems)) | |
334c00f2 | 186 | (license expat))) |