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> |
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 |
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 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, | |
97 | allowing you to run a program in an environment that is protected from the | |
98 | controlling 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 | |
146 | as folding room dividers. The Byobu software includes an enhanced profile, | |
147 | configuration utilities, and system status notifications for the GNU Screen | |
148 | window 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 | |
175 | it to a new terminal. Started a long-running process over @code{ssh}, but have | |
176 | to leave and don't want to interrupt it? Just start a @code{screen}, use | |
177 | reptyr 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))) |