summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOTABI Tomoya <tomoya.otabi@gmail.com>2024-02-27 18:16:10 +0900
committerGitHub <noreply@github.com>2024-02-27 18:16:10 +0900
commit87e73e986cbc23dee5ba3c160188227fd90215cf (patch)
tree05f910c40f28123fce4b01e5c861026656217697
parentMerge pull request #290390 from r-ryantm/auto-update/gthumb (diff)
parentbyobu: migrate to by-name (diff)
downloadnixpkgs-87e73e986cbc23dee5ba3c160188227fd90215cf.tar.gz
Merge pull request #290328 from atorres1985-contrib/byobu
byobu: 5.133 -> 6.12
-rw-r--r--pkgs/by-name/by/byobu/package.nix98
-rw-r--r--pkgs/tools/misc/byobu/default.nix76
-rw-r--r--pkgs/top-level/all-packages.nix5
3 files changed, 98 insertions, 81 deletions
diff --git a/pkgs/by-name/by/byobu/package.nix b/pkgs/by-name/by/byobu/package.nix
new file mode 100644
index 000000000000..bf6896f3153a
--- /dev/null
+++ b/pkgs/by-name/by/byobu/package.nix
@@ -0,0 +1,98 @@
+{ lib
+, autoreconfHook
+, bc
+, fetchFromGitHub
+, gettext
+, makeWrapper
+, perl
+, python3
+, screen
+, stdenv
+, vim
+, tmux
+}:
+
+let
+ pythonEnv = python3.withPackages (ps: with ps; [ snack ]);
+in
+stdenv.mkDerivation (finalAttrs: {
+ pname = "byobu";
+ version = "6.12";
+
+ src = fetchFromGitHub {
+ owner = "dustinkirkland";
+ repo = "byobu";
+ rev = finalAttrs.version;
+ hash = "sha256-NzC9Njsnz14mfKnERGDZw8O3vux0wnfCKwjUeTBQswc=";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ gettext
+ makeWrapper
+ ];
+
+ buildInputs = [
+ perl # perl is needed for `lib/byobu/include/*` scripts
+ screen
+ tmux
+ ];
+
+ doCheck = true;
+ strictDeps = true;
+
+ postPatch = ''
+ for file in usr/bin/byobu-export.in usr/lib/byobu/menu; do
+ substituteInPlace $file \
+ --replace "gettext" "${gettext}/bin/gettext"
+ done
+ '';
+
+ postInstall = ''
+ # By some reason the po files are not being compiled
+ 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 --verbose $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 file in $out/bin/byobu*; do
+ # We don't use the usual "-wrapped" suffix because arg0 within the shebang
+ # scripts points to the filename and byobu matches against this to know
+ # which backend to start with
+ bname="$(basename $file)"
+ mv "$file" "$out/bin/.$bname"
+ makeWrapper "$out/bin/.$bname" "$out/bin/$bname" \
+ --argv0 $bname \
+ --prefix PATH ":" "$out/bin" \
+ --set BYOBU_PATH ${lib.makeBinPath [ vim bc ]} \
+ --set BYOBU_PYTHON "${pythonEnv}/bin/python"
+ done
+ '';
+
+ meta = {
+ homepage = "https://www.byobu.org/";
+ description = "Text-based window manager and terminal multiplexer";
+ longDescription = ''
+ Byobu is a 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 = with lib.licenses; [ gpl3Plus ];
+ mainProgram = "byobu";
+ maintainers = with lib.maintainers; [ AndersonTorres ];
+ platforms = lib.platforms.unix;
+ };
+})
diff --git a/pkgs/tools/misc/byobu/default.nix b/pkgs/tools/misc/byobu/default.nix
deleted file mode 100644
index efcf679c1994..000000000000
--- a/pkgs/tools/misc/byobu/default.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ lib, stdenv, fetchurl, makeWrapper
-, python3, perl, textual-window-manager
-, gettext, vim, bc, screen }:
-
-let
- pythonEnv = python3.withPackages (ps: with ps; [ snack ]);
-in
-stdenv.mkDerivation rec {
- version = "5.133";
- pname = "byobu";
-
- src = fetchurl {
- url = "https://launchpad.net/byobu/trunk/${version}/+download/byobu_${version}.orig.tar.gz";
- sha256 = "0qvmmdnvwqbgbhn5c8asmrmjhclcl029py2d2zvmd7h5ij7s93jd";
- };
-
- doCheck = true;
-
- strictdeps = true;
- nativeBuildInputs = [ makeWrapper gettext ];
- buildInputs = [ perl ]; # perl is needed for `lib/byobu/include/*` scripts
- 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 ];
- };
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fc31513cdb41..6f18cd67a0d5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4506,11 +4506,6 @@ with pkgs;
bws = callPackage ../tools/security/bws { };
- byobu = callPackage ../tools/misc/byobu {
- # Choices: [ tmux screen ];
- textual-window-manager = tmux;
- };
-
bsh = fetchurl {
url = "http://www.beanshell.org/bsh-2.0b5.jar";
hash = "sha256-YjIZlWOAc1SzvLWs6z3BNlAvAixrDvdDmHqD9m/uWlw=";