forked from mirrors/nixpkgs
Merge pull request #90430 from berbiche/byobu-screen
byobu: add screen backend
This commit is contained in:
commit
f331acc1a2
|
@ -1,5 +1,8 @@
|
|||
{ fetchurl, stdenv, slang, popt }:
|
||||
{ lib, fetchurl, stdenv, slang, popt, python }:
|
||||
|
||||
let
|
||||
pythonIncludePath = "${lib.getDev python}/include/python";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "newt";
|
||||
version = "0.52.21";
|
||||
|
@ -11,9 +14,14 @@ stdenv.mkDerivation rec {
|
|||
|
||||
patchPhase = ''
|
||||
sed -i -e s,/usr/bin/install,install, -e s,-I/usr/include/slang,, Makefile.in po/Makefile
|
||||
|
||||
substituteInPlace configure \
|
||||
--replace "/usr/include/python" "${pythonIncludePath}"
|
||||
substituteInPlace configure.ac \
|
||||
--replace "/usr/include/python" "${pythonIncludePath}"
|
||||
'';
|
||||
|
||||
buildInputs = [ slang popt ];
|
||||
buildInputs = [ slang popt python ];
|
||||
|
||||
NIX_LDFLAGS = "-lncurses";
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6640,6 +6640,8 @@ in {
|
|||
|
||||
smugpy = callPackage ../development/python-modules/smugpy { };
|
||||
|
||||
snack = toPythonModule (pkgs.newt.override { inherit (self) python; });
|
||||
|
||||
snakebite = callPackage ../development/python-modules/snakebite { };
|
||||
|
||||
snakeviz = callPackage ../development/python-modules/snakeviz { };
|
||||
|
|
Loading…
Reference in a new issue