summary refs log tree commit diff
path: root/pkgs/tools/misc
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2020-10-23 17:12:23 +0200
committerBjørn Forsman <bjorn.forsman@gmail.com>2020-10-24 09:55:06 +0200
commit3d4e133e7724e1376ff9310b9949c4c372410c65 (patch)
tree526ee5475288d059bda99a6cb231dc1b20b33d44 /pkgs/tools/misc
parentc0a646edd027eff321054f24a2701ba13d3c889a (diff)
downloadnixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.tar
nixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.tar.gz
nixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.tar.bz2
nixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.tar.lz
nixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.tar.xz
nixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.tar.zst
nixpkgs-3d4e133e7724e1376ff9310b9949c4c372410c65.zip
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")
Diffstat (limited to 'pkgs/tools/misc')
-rw-r--r--pkgs/tools/misc/parallel/default.nix10
-rw-r--r--pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff17
2 files changed, 26 insertions, 1 deletions
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 $?;
+ }