aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix65
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 ];
};
}