1{ stdenv, fetchurl, fetchpatch, ncurses, utmp, pam ? null }:
2
3stdenv.mkDerivation rec {
4 name = "screen-4.4.0";
5
6 src = fetchurl {
7 url = "mirror://gnu/screen/${name}.tar.gz";
8 sha256 = "12r12xwhsg59mlprikbbmn60gh8lqhrvyar7mlxg4fwsfma2lwpg";
9 };
10
11 configureFlags= [
12 "--enable-telnet"
13 "--enable-pam"
14 "--with-sys-screenrc=/etc/screenrc"
15 "--enable-colors256"
16 ];
17
18 buildInputs = [ ncurses ] ++ stdenv.lib.optional stdenv.isLinux pam
19 ++ stdenv.lib.optional stdenv.isDarwin utmp;
20
21 doCheck = true;
22
23 meta = with stdenv.lib; {
24 homepage = http://www.gnu.org/software/screen/;
25 description = "A window manager that multiplexes a physical terminal";
26 license = licenses.gpl2Plus;
27
28 longDescription =
29 '' GNU Screen is a full-screen window manager that multiplexes a physical
30 terminal between several processes, typically interactive shells.
31 Each virtual terminal provides the functions of the DEC VT100
32 terminal and, in addition, several control functions from the ANSI
33 X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line
34 and support for multiple character sets). There is a scrollback
35 history buffer for each virtual terminal and a copy-and-paste
36 mechanism that allows the user to move text regions between windows.
37 When screen is called, it creates a single window with a shell in it
38 (or the specified command) and then gets out of your way so that you
39 can use the program as you normally would. Then, at any time, you
40 can create new (full-screen) windows with other programs in them
41 (including more shells), kill the current window, view a list of the
42 active windows, turn output logging on and off, copy text between
43 windows, view the scrollback history, switch between windows, etc.
44 All windows run their programs completely independent of each other.
45 Programs continue to run when their window is currently not visible
46 and even when the whole screen session is detached from the users
47 terminal.
48 '';
49
50 platforms = platforms.unix;
51 maintainers = with maintainers; [ peti jgeerds vrthra ];
52 };
53}