python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / misc / tmux / default.nix
blob0602f9d19d83d3f1a0f9aff2bf2f16d033fd2a88
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , autoreconfHook
5 , bison
6 , libevent
7 , ncurses
8 , pkg-config
9 , withSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isStatic, systemd
10 , utf8proc
13 let
15   bashCompletion = fetchFromGitHub {
16     owner = "imomaliev";
17     repo = "tmux-bash-completion";
18     rev = "f5d53239f7658f8e8fbaf02535cc369009c436d6";
19     sha256 = "0sq2g3w0h3mkfa6qwqdw93chb5f1hgkz5vdl8yw8mxwdqwhsdprr";
20   };
24 stdenv.mkDerivation rec {
25   pname = "tmux";
26   version = "3.3a";
28   outputs = [ "out" "man" ];
30   src = fetchFromGitHub {
31     owner = "tmux";
32     repo = "tmux";
33     rev = version;
34     sha256 = "sha256-SygHxTe7N4y7SdzKixPFQvqRRL57Fm8zWYHfTpW+yVY=";
35   };
37   nativeBuildInputs = [
38     pkg-config
39     autoreconfHook
40     bison
41   ];
43   buildInputs = [
44     ncurses
45     libevent
46   ] ++ lib.optionals withSystemd [ systemd ]
47   ++ lib.optionals stdenv.isDarwin [ utf8proc ];
49   configureFlags = [
50     "--sysconfdir=/etc"
51     "--localstatedir=/var"
52   ] ++ lib.optionals withSystemd [ "--enable-systemd" ]
53   ++ lib.optionals stdenv.isDarwin [ "--enable-utf8proc" ];
55   enableParallelBuilding = true;
57   postInstall = ''
58     mkdir -p $out/share/bash-completion/completions
59     cp -v ${bashCompletion}/completions/tmux $out/share/bash-completion/completions/tmux
60   '';
62   meta = {
63     homepage = "https://tmux.github.io/";
64     description = "Terminal multiplexer";
65     longDescription = ''
66       tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include:
67         * A powerful, consistent, well-documented and easily scriptable command interface.
68         * A window may be split horizontally and vertically into panes.
69         * Panes can be freely moved and resized, or arranged into preset layouts.
70         * Support for UTF-8 and 256-colour terminals.
71         * Copy and paste with multiple buffers.
72         * Interactive menus to select windows, sessions or clients.
73         * Change the current window by searching for text in the target.
74         * Terminal locking, manually or after a timeout.
75         * A clean, easily extended, BSD-licensed codebase, under active development.
76     '';
77     changelog = "https://github.com/tmux/tmux/raw/${version}/CHANGES";
78     license = lib.licenses.bsd3;
79     platforms = lib.platforms.unix;
80     maintainers = with lib.maintainers; [ thammers fpletz SuperSandro2000 srapenne ];
81   };