mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-18 11:44:07 +00:00
4a7f99d55d
Part of: https://github.com/NixOS/nixpkgs/issues/108938 meta = with stdenv.lib; is a widely used pattern. We want to slowly remove the `stdenv.lib` indirection and encourage people to use `lib` directly. Thus let’s start with the meta field. This used a rewriting script to mostly automatically replace all occurances of this pattern, and add the `lib` argument to the package header if it doesn’t exist yet. The script in its current form is available at https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
76 lines
2.7 KiB
Nix
76 lines
2.7 KiB
Nix
{ lib, 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;
|
|
|
|
src = fetchurl {
|
|
url = "https://launchpad.net/byobu/trunk/${version}/+download/byobu_${version}.orig.tar.gz";
|
|
sha256 = "0qvmmdnvwqbgbhn5c8asmrmjhclcl029py2d2zvmd7h5ij7s93jd";
|
|
};
|
|
|
|
doCheck = true;
|
|
|
|
buildInputs = [ perl makeWrapper gettext ];
|
|
propagatedBuildInputs = [ textual-window-manager screen ];
|
|
|
|
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 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,
|
|
and works on most Linux, BSD, and Mac distributions.
|
|
'';
|
|
|
|
license = licenses.gpl3;
|
|
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ qknight berbiche ];
|
|
};
|
|
}
|