summary refs log tree commit diff
path: root/pkgs/tools/compression/gzip
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2009-11-08 00:32:12 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2009-11-08 00:32:12 +0000
commit4b27d2870197b26b7c170caa333944231715d4a3 (patch)
tree6b781861cb96e9ce0660ca0b904ed3dda1cc6905 /pkgs/tools/compression/gzip
parent6e86ca940f9cb7fdbbf8663bc5c19af45fbc1e17 (diff)
downloadnixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.tar
nixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.tar.gz
nixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.tar.bz2
nixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.tar.lz
nixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.tar.xz
nixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.tar.zst
nixpkgs-4b27d2870197b26b7c170caa333944231715d4a3.zip
Porting changes from stdenv-updates into this branch.
This comes from:
svn diff  ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff
patch -p0 < diff
and then adding into svn all files new from the patch.

trunk@18255 comes from the last time I updated stdenv-updates from trunk.


svn path=/nixpkgs/stdenv-updates2/; revision=18272
Diffstat (limited to 'pkgs/tools/compression/gzip')
-rw-r--r--pkgs/tools/compression/gzip/default.nix36
-rw-r--r--pkgs/tools/compression/gzip/getopt.patch54
-rw-r--r--pkgs/tools/compression/gzip/gnulib-futimens.patch42
3 files changed, 81 insertions, 51 deletions
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index 0a2afd05372..7a25b69c013 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,17 +1,35 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "gzip-1.3.12";
-  
+stdenv.mkDerivation rec {
+  name = "gzip-1.3.13";
+
   src = fetchurl {
-    url = http://ftp.gnu.org/gnu/gzip/gzip-1.3.12.tar.gz;
-    sha256 = "1bw7sm68xjlnlzgcx66hnw80ac1qqyvhw0vw27zilgbzbzh5nmiz";
+    url = "mirror://gnu/gzip/${name}.tar.gz";
+    sha256 = "18vwa7x0b1sql9bs2d15n94fx3him1m6xpnwsfz52djjbjgzy1hx";
   };
 
+  patches = [ ./getopt.patch ];
+
+  doCheck = true;
+
   meta = {
-    homepage = http://www.gzip.org/;
-    description = "The gzip compression program";
+    homepage = http://www.gnu.org/software/gzip/;
+    description = "Gzip, the GNU zip compression program";
+
+    longDescription =
+      ''gzip (GNU zip) is a popular data compression program written by
+        Jean-loup Gailly for the GNU project.  Mark Adler wrote the
+        decompression part.
+
+        We developed this program as a replacement for compress because of
+        the Unisys and IBM patents covering the LZW algorithm used by
+        compress.  These patents made it impossible for us to use compress,
+        and we needed a replacement.  The superior compression ratio of gzip
+        is just a bonus.
+      '';
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
-  
-  patches = [./gnulib-futimens.patch];
 }
diff --git a/pkgs/tools/compression/gzip/getopt.patch b/pkgs/tools/compression/gzip/getopt.patch
new file mode 100644
index 00000000000..e61dd977810
--- /dev/null
+++ b/pkgs/tools/compression/gzip/getopt.patch
@@ -0,0 +1,54 @@
+See http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00089.html .
+
+From dd0ebefe4fe761f6f422a400430db53c64dbffd7 Mon Sep 17 00:00:00 2001
+From: Eric Blake <ebb9@byu.net>
+Date: Tue, 6 Oct 2009 20:44:13 -0600
+Subject: [PATCH] getopt: fix compilation on darwin
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* lib/getopt.in.h (includes): Leave breadcrumbs during system
+include.
+* lib/unistd.in.h (getopt): Use them to avoid recursive include.
+Reported by Ludovic Courtès.
+
+Signed-off-by: Eric Blake <ebb9@byu.net>
+---
+ ChangeLog       |    5 +++++
+ lib/getopt.in.h |    6 +++++-
+ lib/unistd.in.h |    2 +-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/lib/getopt.in.h b/lib/getopt.in.h
+index 9de467a..7377f3c 100644
+--- a/lib/getopt.in.h
++++ b/lib/getopt.in.h
+@@ -22,9 +22,13 @@
+ @PRAGMA_SYSTEM_HEADER@
+ #endif
+
+-/* The include_next requires a split double-inclusion guard.  */
++/* The include_next requires a split double-inclusion guard.  We must
++   also inform the replacement unistd.h to not recursively use
++   <getopt.h>; our definitions will be present soon enough.  */
+ #if @HAVE_GETOPT_H@
++# define _GL_SYSTEM_GETOPT
+ # @INCLUDE_NEXT@ @NEXT_GETOPT_H@
++# undef _GL_SYSTEM_GETOPT
+ #endif
+
+ #ifndef _GL_GETOPT_H
+diff --git a/lib/unistd.in.h b/lib/unistd.in.h
+index 38e2e13..b6ea889 100644
+--- a/lib/unistd.in.h
++++ b/lib/unistd.in.h
+@@ -49,7 +49,7 @@
+ #endif
+
+ /* Get getopt(), optarg, optind, opterr, optopt.  */
+-#if @GNULIB_UNISTD_H_GETOPT@
++#if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
+ # include <getopt.h>
+ #endif
+
diff --git a/pkgs/tools/compression/gzip/gnulib-futimens.patch b/pkgs/tools/compression/gzip/gnulib-futimens.patch
index 5804bf27ff3..e69de29bb2d 100644
--- a/pkgs/tools/compression/gzip/gnulib-futimens.patch
+++ b/pkgs/tools/compression/gzip/gnulib-futimens.patch
@@ -1,42 +0,0 @@
-now hat glibc-2.6  declares futimens.
-http://lists.gnu.org/archive/html/bug-gnulib/2007-05/msg00089.html
-
-diff -ru cpio-2.7.orig/lib/utimens.c cpio-2.7/lib/utimens.c
---- cpio-2.7.orig/lib/utimens.c	2007-05-20 21:23:57.000000000 +0900
-+++ cpio-2.7/lib/utimens.c	2007-05-21 08:40:22.000000000 +0900
-@@ -73,7 +73,7 @@
-    Return 0 on success, -1 (setting errno) on failure.  */
- 
- int
--futimens (int fd ATTRIBUTE_UNUSED,
-+gl_futimens (int fd ATTRIBUTE_UNUSED,
- 	  char const *file, struct timespec const timespec[2])
- {
-   /* There's currently no interface to set file timestamps with
-@@ -166,5 +166,5 @@
- int
- utimens (char const *file, struct timespec const timespec[2])
- {
--  return futimens (-1, file, timespec);
-+  return gl_futimens (-1, file, timespec);
- }
-diff -ru cpio-2.7.orig/lib/utimens.h cpio-2.7/lib/utimens.h
---- cpio-2.7.orig/lib/utimens.h	2007-05-20 21:23:57.000000000 +0900
-+++ cpio-2.7/lib/utimens.h	2007-05-21 08:39:57.000000000 +0900
-@@ -1,3 +1,3 @@
- #include "timespec.h"
--int futimens (int, char const *, struct timespec const [2]);
-+int gl_futimens (int, char const *, struct timespec const [2]);
- int utimens (char const *, struct timespec const [2]);
-diff -ur gzip-1.3.12.orig/gzip.c gzip-1.3.12/gzip.c
---- gzip-1.3.12.orig/gzip.c	2007-05-21 09:12:46.000000000 +0900
-+++ gzip-1.3.12/gzip.c	2007-05-21 09:13:14.000000000 +0900
-@@ -1637,7 +1637,7 @@
- 	}
-       }
- 
--    if (futimens (ofd, ofname, timespec) != 0)
-+    if (gl_futimens (ofd, ofname, timespec) != 0)
-       {
- 	int e = errno;
- 	WARN ((stderr, "%s: ", program_name));