Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 71 lines 2.5 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 autoreconfHook, 6 ncurses, 7 libxcrypt, 8 pam ? null, 9}: 10 11stdenv.mkDerivation rec { 12 pname = "screen"; 13 version = "5.0.1"; 14 15 src = fetchurl { 16 url = "mirror://gnu/screen/screen-${version}.tar.gz"; 17 hash = "sha256-La429Ns3n/zRS2kVlrpuwYrDqeIrxHrCOXiatYQJhp0="; 18 }; 19 20 configureFlags = [ 21 "--enable-telnet" 22 "--enable-pam" 23 ]; 24 25 # We need _GNU_SOURCE so that mallocmock_reset() is defined: https://savannah.gnu.org/bugs/?66416 26 NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE=1 -Wno-int-conversion -Wno-incompatible-pointer-types"; 27 28 nativeBuildInputs = [ 29 autoreconfHook 30 ]; 31 buildInputs = [ 32 ncurses 33 libxcrypt 34 pam 35 ]; 36 37 # The test suite seems to have some glibc malloc hooks that don't exist/link on macOS 38 # With pkgsLLVM: tests/test-winmsgcond.c:53: assertion 'wmc_end(&wmc, pos + 1, &chg) == pos' failed 39 doCheck = !stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.useLLVM; 40 41 meta = with lib; { 42 homepage = "https://www.gnu.org/software/screen/"; 43 description = "Window manager that multiplexes a physical terminal"; 44 license = licenses.gpl3Plus; 45 46 longDescription = '' 47 GNU Screen is a full-screen window manager that multiplexes a physical 48 terminal between several processes, typically interactive shells. 49 Each virtual terminal provides the functions of the DEC VT100 50 terminal and, in addition, several control functions from the ANSI 51 X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line 52 and support for multiple character sets). There is a scrollback 53 history buffer for each virtual terminal and a copy-and-paste 54 mechanism that allows the user to move text regions between windows. 55 When screen is called, it creates a single window with a shell in it 56 (or the specified command) and then gets out of your way so that you 57 can use the program as you normally would. Then, at any time, you 58 can create new (full-screen) windows with other programs in them 59 (including more shells), kill the current window, view a list of the 60 active windows, turn output logging on and off, copy text between 61 windows, view the scrollback history, switch between windows, etc. 62 All windows run their programs completely independent of each other. 63 Programs continue to run when their window is currently not visible 64 and even when the whole screen session is detached from the users 65 terminal. 66 ''; 67 68 platforms = platforms.unix; 69 maintainers = [ ]; 70 }; 71}