From 3d4e133e7724e1376ff9310b9949c4c372410c65 Mon Sep 17 00:00:00 2001 From: Bjørn Forsman Date: Fri, 23 Oct 2020 17:12:23 +0200 Subject: parallel: fix calculation of max line length parallel >= 20200822 uses /bin/echo to calculate the max allowed line length. Patch it to a correct path, so that it doesn't (silently) fail and fall back to a low value of 324. Before: $ parallel --max-line-length-allowed 324 After: $ parallel --max-line-length-allowed 131063 Fixes: 16ca8725ff ("parallel: 20200722 -> 20200822") --- pkgs/tools/misc/parallel/default.nix | 10 +++++++++- .../misc/parallel/fix-max-line-length-allowed.diff | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff (limited to 'pkgs/tools') diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix index e99f2aa12d5..2f3ca5afd5a 100644 --- a/pkgs/tools/misc/parallel/default.nix +++ b/pkgs/tools/misc/parallel/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, perl, makeWrapper, procps }: +{ fetchurl, stdenv, perl, makeWrapper, procps, coreutils }: stdenv.mkDerivation rec { name = "parallel-20200822"; @@ -8,6 +8,14 @@ stdenv.mkDerivation rec { sha256 = "02dy46g6f05p7s2qs8h6yg20p1zl3flxxf77n5jw74l3h1m24m4n"; }; + patches = [ + ./fix-max-line-length-allowed.diff + ]; + + postPatch = '' + substituteInPlace src/parallel --subst-var-by coreutils ${coreutils} + ''; + outputs = [ "out" "man" ]; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff b/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff new file mode 100644 index 00000000000..c6d501ecb22 --- /dev/null +++ b/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff @@ -0,0 +1,17 @@ +Correct path to coreutils echo to fix parallel --max-line-length-allowed. + +Author: Bjørn Forsman + +diff --git a/src/parallel b/src/parallel +index a047fd94..9fc5f671 100755 +--- a/src/parallel ++++ b/src/parallel +@@ -11580,7 +11580,7 @@ sub is_acceptable_command_line_length($$) { + $len += length $Global::parallel_env; + } + # Force using non-built-in command +- ::qqx("/bin/echo ".${string}x(($len-length "/bin/echo ")/length $string)); ++ ::qqx("@coreutils@/bin/echo ".${string}x(($len-length "@coreutils@/bin/echo ")/length $string)); + ::debug("init", "$len=$? "); + return not $?; + } -- cgit 1.4.1