nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 103 lines 3.4 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 fetchpatch, 6 autoreconfHook, 7 texinfo, 8 ncurses, 9 libxcrypt, 10 pam ? null, 11}: 12 13stdenv.mkDerivation (finalAttrs: { 14 pname = "screen"; 15 version = "5.0.1"; 16 17 src = fetchurl { 18 url = "mirror://gnu/screen/screen-${finalAttrs.version}.tar.gz"; 19 hash = "sha256-La429Ns3n/zRS2kVlrpuwYrDqeIrxHrCOXiatYQJhp0="; 20 }; 21 22 patches = [ 23 (fetchpatch { 24 url = "https://file.savannah.gnu.org/file/0001-test-fix-unit-tests.patch?file_id=57558"; 25 stripLen = 1; 26 hash = "sha256-q3jQQrzweLf2T/V5X9iL4ZZK342QEXLG5fZTaMOB4tY="; 27 }) 28 # Following 3 commits fix screen.info file issues 29 (fetchpatch { 30 name = "screen.info-1st.patch"; 31 url = "https://cgit.git.savannah.gnu.org/cgit/screen.git/patch/?id=7333452aa52d61a170b1fc199869ea6059849058"; 32 stripLen = 1; 33 hash = "sha256-fYkljMNefDJtf+uA9qPotQEOxwhlQj0nZfTszhl/oik="; 34 }) 35 (fetchpatch { 36 name = "screen.info-2nd.patch"; 37 url = "https://cgit.git.savannah.gnu.org/cgit/screen.git/patch/?id=6790fb8e1931783646c07a364657fadb5c9d1e63"; 38 stripLen = 1; 39 hash = "sha256-+fRPfCbJKYUW/ZE6C63xB2WEtTv6KPi8waXLt9N+AuU="; 40 }) 41 (fetchpatch { 42 name = "screen.info-3rd.patch"; 43 url = "https://cgit.git.savannah.gnu.org/cgit/screen.git/patch/?id=94c3e1fd81826ce3b677d49f7a452e6fe77ed63b"; 44 stripLen = 1; 45 hash = "sha256-Wq4Bx5wCqsOWtrfUON5wTuhpBH8JxyoOiHHfDT2CsHw="; 46 }) 47 ]; 48 49 configureFlags = [ 50 "--enable-telnet" 51 "--enable-pam" 52 ]; 53 54 # We need _GNU_SOURCE so that mallocmock_reset() is defined: https://savannah.gnu.org/bugs/?66416 55 env.NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE=1"; 56 57 nativeBuildInputs = [ 58 autoreconfHook 59 texinfo 60 ]; 61 buildInputs = [ 62 ncurses 63 libxcrypt 64 pam 65 ]; 66 67 outputs = [ 68 "out" 69 "info" 70 "man" 71 ]; 72 73 meta = { 74 homepage = "https://www.gnu.org/software/screen/"; 75 description = "Window manager that multiplexes a physical terminal"; 76 license = lib.licenses.gpl3Plus; 77 78 longDescription = '' 79 GNU Screen is a full-screen window manager that multiplexes a physical 80 terminal between several processes, typically interactive shells. 81 Each virtual terminal provides the functions of the DEC VT100 82 terminal and, in addition, several control functions from the ANSI 83 X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line 84 and support for multiple character sets). There is a scrollback 85 history buffer for each virtual terminal and a copy-and-paste 86 mechanism that allows the user to move text regions between windows. 87 When screen is called, it creates a single window with a shell in it 88 (or the specified command) and then gets out of your way so that you 89 can use the program as you normally would. Then, at any time, you 90 can create new (full-screen) windows with other programs in them 91 (including more shells), kill the current window, view a list of the 92 active windows, turn output logging on and off, copy text between 93 windows, view the scrollback history, switch between windows, etc. 94 All windows run their programs completely independent of each other. 95 Programs continue to run when their window is currently not visible 96 and even when the whole screen session is detached from the users 97 terminal. 98 ''; 99 100 platforms = lib.platforms.unix; 101 maintainers = [ ]; 102 }; 103})