about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/tools/text/gnupatch/default.nix9
-rw-r--r--pkgs/tools/text/gnupatch/setmode.patch20
-rw-r--r--pkgs/top-level/all-packages.nix3
3 files changed, 28 insertions, 4 deletions
diff --git a/pkgs/tools/text/gnupatch/default.nix b/pkgs/tools/text/gnupatch/default.nix
index c019be07a7b2..2716d6a298ab 100644
--- a/pkgs/tools/text/gnupatch/default.nix
+++ b/pkgs/tools/text/gnupatch/default.nix
@@ -1,7 +1,12 @@
-{stdenv, fetchurl}: stdenv.mkDerivation {
+{stdenv, fetchurl}: stdenv.mkDerivation ({
   name = "gnupatch-2.5.4";
   src = fetchurl {
     url = http://nix.cs.uu.nl/dist/tarballs/patch-2.5.4.tar.gz;
     md5 = "ee5ae84d115f051d87fcaaef3b4ae782";
   };
-}
+} // 
+  # !!! hack
+  (if stdenv.system != "i686-linux" then {
+    patches = [./setmode.patch];
+    configureFlags = "dummy"; # doesn't build on Darwin unless a platform is specified
+  } else {}))
diff --git a/pkgs/tools/text/gnupatch/setmode.patch b/pkgs/tools/text/gnupatch/setmode.patch
new file mode 100644
index 000000000000..83b7022e18db
--- /dev/null
+++ b/pkgs/tools/text/gnupatch/setmode.patch
@@ -0,0 +1,20 @@
+diff -rc patch-2.5.4-orig/pch.c patch-2.5.4/pch.c
+*** patch-2.5.4-orig/pch.c	Mon Aug 30 08:20:08 1999
+--- patch-2.5.4/pch.c	Fri Jul 14 13:11:26 2006
+***************
+*** 105,111 ****
+      if (!filename || !*filename || strEQ (filename, "-"))
+        {
+  	file_offset stdin_pos;
+! #if HAVE_SETMODE
+  	if (binary_transput)
+  	  {
+  	    if (isatty (STDIN_FILENO))
+--- 105,111 ----
+      if (!filename || !*filename || strEQ (filename, "-"))
+        {
+  	file_offset stdin_pos;
+! #if 0 && HAVE_SETMODE
+  	if (binary_transput)
+  	  {
+  	    if (isatty (STDIN_FILENO))
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 18effedcc6eb..f34b414a8f47 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -159,8 +159,7 @@ rec {
     inherit fetchurl stdenv;
   };
 
-  patch = useFromStdenv (stdenv ? patch) stdenv.patch
-    (if isDarwin stdenv then null else gnupatch);
+  patch = useFromStdenv (stdenv ? patch) stdenv.patch gnupatch;
 
   gnused = useFromStdenv (stdenv ? gnused) stdenv.gnused
     (import ../tools/text/gnused {