about summary refs log tree commit diff
path: root/pkgs/tools/misc/picocom
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2020-12-24 07:22:20 +0800
committerGitHub <noreply@github.com>2020-12-24 07:22:20 +0800
commitcb665178660844ed5ecfcfaee93b1f4c35b05e26 (patch)
tree3a570a3c41b699a9c0a379093505c7ce6aab9d63 /pkgs/tools/misc/picocom
parent1d364e5138acf29127539657159e6cf16f47c1ca (diff)
picocom: 3.1 -> 3.2a (#107379)
* picocom: 3.1 -> 3.2a

Also:
- drop wrapper and patch in location of binaries
- add bash completion support
- start using shell helpers instead of manually copying in man page

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Diffstat (limited to 'pkgs/tools/misc/picocom')
-rw-r--r--pkgs/tools/misc/picocom/default.nix48
1 files changed, 30 insertions, 18 deletions
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index 5dd83c4887b14..1db8d00a90218 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -1,36 +1,48 @@
-{ stdenv, fetchFromGitHub, makeWrapper, lrzsz, IOKit }:
-
-assert stdenv.isDarwin -> IOKit != null;
-
-with stdenv.lib;
+{ stdenv
+, fetchFromGitHub
+, installShellFiles
+, lrzsz
+, IOKit
+}:
 
 stdenv.mkDerivation rec {
   pname = "picocom";
-  version = "3.1";
+  # last tagged release is 3.1 but 3.2 is still considered a release
+  version = "3.2a";
 
+  # upstream is quiet as the original author is no longer active since March 2018
   src = fetchFromGitHub {
     owner = "npat-efault";
     repo = "picocom";
-    rev = version;
-    sha256 = "1vvjydqf0ax47nvdyyl67jafw5b3sfsav00xid6qpgia1gs2r72n";
+    rev = "1acf1ddabaf3576b4023c4f6f09c5a3e4b086fb8";
+    sha256 = "sha256-cs2bxqZfTbnY5d+VJ257C5hssaFvYup3tBKz68ROnAo=";
   };
 
-  buildInputs = [ makeWrapper ]
-    ++ optionals stdenv.isDarwin [ IOKit ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace '.picocom_history' '.cache/picocom_history'
 
-  installPhase = ''
-    mkdir -p $out/bin $out/share/man/man1
-    cp picocom $out/bin
-    cp picocom.1 $out/share/man/man1
+    substituteInPlace picocom.c \
+      --replace '"rz -vv"' '"${lrzsz}/bin/rz -vv"' \
+      --replace '"sz -vv"' '"${lrzsz}/bin/sz -vv"'
+  '';
 
-    wrapProgram $out/bin/picocom \
-      --prefix PATH ":" "${lrzsz}/bin"
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin IOKit;
+
+  installPhase = ''
+    install -Dm555 -t $out/bin picocom
+    installManPage picocom.1
+    installShellCompletion --bash bash_completion/picocom
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Minimal dumb-terminal emulation program";
     homepage = "https://github.com/npat-efault/picocom/";
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
 }