about summary refs log tree commit diff
path: root/pkgs
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 /pkgs
parent6212b787b8db7f03dfb48de3c493b58b0d1caa93 (diff)
parent38a30e160df3949cd7737c0b1585d3b7bcfe2529 (diff)
Merge pull request #290328 from atorres1985-contrib/byobu
byobu: 5.133 -> 6.12
Diffstat (limited to 'pkgs')
-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 0000000000000..bf6896f3153ae
--- /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 efcf679c19947..0000000000000
--- 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 fc31513cdb418..6f18cd67a0d56 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=";