From 47dbf6f64ebd38644f2e42704427273229edf9f6 Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 12 Sep 2024 14:45:05 +0100 Subject: [PATCH 1/5] linenoise: use `fixDarwinDylibNames` --- pkgs/development/libraries/linenoise/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/linenoise/default.nix b/pkgs/development/libraries/linenoise/default.nix index 42017e5e1718..a525a3da9a41 100644 --- a/pkgs/development/libraries/linenoise/default.nix +++ b/pkgs/development/libraries/linenoise/default.nix @@ -2,6 +2,7 @@ , stdenv , fetchFromGitHub , validatePkgConfig +, fixDarwinDylibNames }: stdenv.mkDerivation { @@ -15,7 +16,8 @@ stdenv.mkDerivation { hash = "sha256-GsrYg16gpjHkkmpCU3yGzqNS/buZl+JoWALLvwzmT4A="; }; - nativeBuildInputs = [ validatePkgConfig ]; + nativeBuildInputs = [ validatePkgConfig ] + ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; buildPhase = '' runHook preBuild From 0ac4e0f0083fa8e94617d4345eb757702282adf2 Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 12 Sep 2024 14:44:39 +0100 Subject: [PATCH 2/5] picocom: move to `pkgs/by-name` --- .../picocom/default.nix => by-name/pi/picocom/package.nix} | 4 ++-- pkgs/top-level/all-packages.nix | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) rename pkgs/{tools/misc/picocom/default.nix => by-name/pi/picocom/package.nix} (92%) diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/by-name/pi/picocom/package.nix similarity index 92% rename from pkgs/tools/misc/picocom/default.nix rename to pkgs/by-name/pi/picocom/package.nix index d8422e3679fd..10fc1d7bfa0b 100644 --- a/pkgs/tools/misc/picocom/default.nix +++ b/pkgs/by-name/pi/picocom/package.nix @@ -2,7 +2,7 @@ , fetchFromGitHub , installShellFiles , lrzsz -, IOKit +, darwin }: stdenv.mkDerivation rec { @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ installShellFiles ]; - buildInputs = lib.optional stdenv.isDarwin IOKit; + buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ]; installPhase = '' install -Dm555 -t $out/bin picocom diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c12c64eac07b..5e4cca8e28b1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32589,10 +32589,6 @@ with pkgs; picard = callPackage ../applications/audio/picard { }; - picocom = callPackage ../tools/misc/picocom { - inherit (darwin.apple_sdk.frameworks) IOKit; - }; - picoloop = callPackage ../applications/audio/picoloop { }; picosnitch = callPackage ../tools/networking/picosnitch { }; From dfa36a3e5c689d032884b7f433aeb52846e7e64a Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 12 Sep 2024 15:06:58 +0100 Subject: [PATCH 3/5] picocom: format with `nixfmt-rfc-style` --- pkgs/by-name/pi/picocom/package.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/pi/picocom/package.nix b/pkgs/by-name/pi/picocom/package.nix index 10fc1d7bfa0b..ae4a3b3f7c6d 100644 --- a/pkgs/by-name/pi/picocom/package.nix +++ b/pkgs/by-name/pi/picocom/package.nix @@ -1,8 +1,10 @@ -{ lib, stdenv -, fetchFromGitHub -, installShellFiles -, lrzsz -, darwin +{ + lib, + stdenv, + fetchFromGitHub, + installShellFiles, + lrzsz, + darwin, }: stdenv.mkDerivation rec { From 5f0e2e9e4e03b5bf446a4cd3f6f98d072c709238 Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 12 Sep 2024 14:45:05 +0100 Subject: [PATCH 4/5] picocom: switch to maintained fork The previous upstream has been dead for six years; this fork is by Linux kernel developer Wolfram Sang, and is already used by Fedora, openSUSE, and Buildroot. --- pkgs/by-name/pi/picocom/lrzsz-path.patch | 15 ++++++ pkgs/by-name/pi/picocom/package.nix | 61 ++++++++++++++---------- 2 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 pkgs/by-name/pi/picocom/lrzsz-path.patch diff --git a/pkgs/by-name/pi/picocom/lrzsz-path.patch b/pkgs/by-name/pi/picocom/lrzsz-path.patch new file mode 100644 index 000000000000..86e9759db2de --- /dev/null +++ b/pkgs/by-name/pi/picocom/lrzsz-path.patch @@ -0,0 +1,15 @@ +diff --git a/picocom.c b/picocom.c +index ba2f9bd666..d4df60f2d3 100644 +--- a/picocom.c ++++ b/picocom.c +@@ -243,8 +243,8 @@ + .send_cmd = "", + .receive_cmd = "", + #else +- .send_cmd = "sz -vv", +- .receive_cmd = "rz -vv -E", ++ .send_cmd = "@lrzsz@/bin/sz -vv", ++ .receive_cmd = "@lrzsz@/bin/rz -vv -E", + #endif + .imap = M_I_DFL, + .omap = M_O_DFL, diff --git a/pkgs/by-name/pi/picocom/package.nix b/pkgs/by-name/pi/picocom/package.nix index ae4a3b3f7c6d..5f3458df7d3e 100644 --- a/pkgs/by-name/pi/picocom/package.nix +++ b/pkgs/by-name/pi/picocom/package.nix @@ -1,51 +1,60 @@ { lib, stdenv, - fetchFromGitHub, + fetchFromGitLab, + replaceVars, + go-md2man, installShellFiles, - lrzsz, darwin, + lrzsz, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "picocom"; - # last tagged release is 3.1 but 3.2 is still considered a release - version = "3.2a"; + version = "2024-07"; - # upstream is quiet as the original author is no longer active since March 2018 - src = fetchFromGitHub { - owner = "npat-efault"; + src = fetchFromGitLab { + owner = "wsakernel"; repo = "picocom"; - rev = "1acf1ddabaf3576b4023c4f6f09c5a3e4b086fb8"; - sha256 = "sha256-cs2bxqZfTbnY5d+VJ257C5hssaFvYup3tBKz68ROnAo="; + rev = finalAttrs.version; + hash = "sha256-cQoEfi75iltjeAm26NvXgfrL7d1Hm+1veQ4dVe0S1q8="; }; - postPatch = '' - substituteInPlace Makefile \ - --replace '.picocom_history' '.cache/picocom_history' + patches = [ + (replaceVars ./lrzsz-path.patch { inherit lrzsz; }) + ]; - substituteInPlace picocom.c \ - --replace '"rz -vv -E"' '"${lrzsz}/bin/rz -vv -E"' \ - --replace '"sz -vv"' '"${lrzsz}/bin/sz -vv"' - ''; - - enableParallelBuilding = true; - - nativeBuildInputs = [ installShellFiles ]; + nativeBuildInputs = [ + go-md2man + installShellFiles + ]; buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ]; + makeFlags = [ + "HISTFILE=.cache/picocom_history" + "all" + "doc" + ]; + + enableParallelBuilding = true; + installPhase = '' + runHook preInstall + install -Dm555 -t $out/bin picocom installManPage picocom.1 installShellCompletion --bash bash_completion/picocom + + runHook postInstall ''; - meta = with lib; { + meta = { description = "Minimal dumb-terminal emulation program"; - homepage = "https://github.com/npat-efault/picocom/"; - license = licenses.gpl2Plus; - platforms = platforms.unix; + homepage = "https://gitlab.com/wsakernel/picocom"; + changelog = "https://gitlab.com/wsakernel/picocom/-/releases"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; mainProgram = "picocom"; }; -} +}) From a5cd7bba11737aad7f2aae9de0e5c6ab8e121fac Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 12 Sep 2024 14:45:05 +0100 Subject: [PATCH 5/5] picocom: devendor linenoise --- pkgs/by-name/pi/picocom/package.nix | 8 ++++- .../pi/picocom/use-system-linenoise.patch | 30 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/pi/picocom/use-system-linenoise.patch diff --git a/pkgs/by-name/pi/picocom/package.nix b/pkgs/by-name/pi/picocom/package.nix index 5f3458df7d3e..9e9d1380558a 100644 --- a/pkgs/by-name/pi/picocom/package.nix +++ b/pkgs/by-name/pi/picocom/package.nix @@ -3,8 +3,10 @@ stdenv, fetchFromGitLab, replaceVars, + pkg-config, go-md2man, installShellFiles, + linenoise, darwin, lrzsz, }: @@ -21,15 +23,19 @@ stdenv.mkDerivation (finalAttrs: { }; patches = [ + ./use-system-linenoise.patch (replaceVars ./lrzsz-path.patch { inherit lrzsz; }) ]; nativeBuildInputs = [ + pkg-config go-md2man installShellFiles ]; - buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ]; + buildInputs = [ + linenoise + ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ]; makeFlags = [ "HISTFILE=.cache/picocom_history" diff --git a/pkgs/by-name/pi/picocom/use-system-linenoise.patch b/pkgs/by-name/pi/picocom/use-system-linenoise.patch new file mode 100644 index 000000000000..ee31a0d617cc --- /dev/null +++ b/pkgs/by-name/pi/picocom/use-system-linenoise.patch @@ -0,0 +1,30 @@ +diff --git a/Makefile b/Makefile +index 8fca24ee38..33b59b5b96 100644 +--- a/Makefile ++++ b/Makefile +@@ -39,9 +39,9 @@ + ## Comment these out to disable "linenoise"-library support + HISTFILE = .picocom_history + CPPFLAGS += -DHISTFILE=\"$(HISTFILE)\" \ +- -DLINENOISE +-OBJS += linenoise-1.0/linenoise.o +-linenoise-1.0/linenoise.o : linenoise-1.0/linenoise.c linenoise-1.0/linenoise.h ++ -DLINENOISE \ ++ $(shell pkg-config --cflags linenoise) ++LDFLAGS += $(shell pkg-config --libs linenoise) + + ## Comment this in to enable (force) custom baudrate support + ## even on systems not enabled by default. +diff --git a/picocom.c b/picocom.c +index 775ee9c3bb..ba2f9bd666 100644 +--- a/picocom.c ++++ b/picocom.c +@@ -48,7 +48,7 @@ + #include "split.h" + #include "term.h" + #ifdef LINENOISE +-#include "linenoise-1.0/linenoise.h" ++#include + #endif + + #include "custbaud.h"