diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix | 65 |
1 files changed, 52 insertions, 13 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix index ad17c5edd6ee..695ae54d876e 100644 --- a/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix +++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix @@ -1,5 +1,11 @@ -{ stdenv, fetchurl, python3, perl, textual-window-manager }: +{ stdenv, fetchurl, makeWrapper +, ncurses, python3, perl, textual-window-manager +, gettext, vim, bc, screen }: +let + inherit (stdenv) lib; + pythonEnv = python3.withPackages (ps: with ps; [ snack ]); +in stdenv.mkDerivation rec { version = "5.133"; name = "byobu-" + version; @@ -11,26 +17,59 @@ stdenv.mkDerivation rec { doCheck = true; - buildInputs = [ python3 perl ]; - propagatedBuildInputs = [ textual-window-manager ]; + buildInputs = [ perl makeWrapper gettext ]; + propagatedBuildInputs = [ textual-window-manager screen ]; - meta = { + postPatch = '' + substituteInPlace usr/bin/byobu-export.in \ + --replace "gettext" "${gettext}/bin/gettext" + substituteInPlace usr/lib/byobu/menu \ + --replace "gettext" "${gettext}/bin/gettext" + ''; + + postInstall = '' + # Byobu does not compile its po files for some reason + for po in po/*.po; do + lang=''${po#po/} + lang=''${lang%.po} + # Path where byobu looks for translations as observed in the source code and strace + mkdir -p $out/share/byobu/po/$lang/LC_MESSAGES/ + msgfmt $po -o $out/share/byobu/po/$lang/LC_MESSAGES/byobu.mo + done + + # Override the symlinks otherwise they mess with the wrapping + cp --remove-destination $out/bin/byobu $out/bin/byobu-screen + cp --remove-destination $out/bin/byobu $out/bin/byobu-tmux + + for i in $out/bin/byobu*; do + # We don't use the usual ".$package-wrapped" because arg0 within the shebang scripts + # points to the filename and byobu matches against this to know which backend + # to start with + file=".$(basename $i)" + mv $i $out/bin/$file + makeWrapper "$out/bin/$file" "$out/bin/$(basename $i)" --argv0 $(basename $i) \ + --set BYOBU_PATH ${lib.escapeShellArg (lib.makeBinPath [ vim bc ])} \ + --set BYOBU_PYTHON "${pythonEnv}/bin/python" + done + ''; + + meta = with stdenv.lib; { homepage = "https://launchpad.net/byobu/"; description = "Text-based window manager and terminal multiplexer"; longDescription = - ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer. - It was originally designed to provide elegant enhancements to the otherwise functional, - plain, practical GNU Screen, for the Ubuntu server distribution. - Byobu now includes an enhanced profiles, convenient keybindings, - configuration utilities, and toggle-able system status notifications for both - the GNU Screen window manager and the more modern Tmux terminal multiplexer, + ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer. + It was originally designed to provide elegant enhancements to the otherwise functional, + plain, practical GNU Screen, for the Ubuntu server distribution. + Byobu now includes an enhanced profiles, convenient keybindings, + configuration utilities, and toggle-able system status notifications for both + the GNU Screen window manager and the more modern Tmux terminal multiplexer, and works on most Linux, BSD, and Mac distributions. ''; - license = stdenv.lib.licenses.gpl3; + license = licenses.gpl3; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.qknight ]; + platforms = platforms.unix; + maintainers = with maintainers; [ qknight berbiche ]; }; } |