From f626b8fc55218046e11a817c1251ca19121bb523 Mon Sep 17 00:00:00 2001
From: Zhai Edwin <edwin.zhai@intel.com>
Date: Mon, 16 Aug 2010 14:31:15 +0800
Subject: gzip: Add 1.3.12(GPLv2) as new recipe

Remove AC_USE_SYSTEM_EXTENSIONS to fix autoconf error, and rename a function to
avoid duplicated defination between gblic and gunlib

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 meta/packages/gzip/gzip-1.3.12/dup-def-fix.patch   | 45 ++++++++++++++++++
 .../gzip/gzip-1.3.12/m4-extensions-fix.patch       | 53 ++++++++++++++++++++++
 meta/packages/gzip/gzip_1.3.12.bb                  | 39 ++++++++++++++++
 3 files changed, 137 insertions(+)
 create mode 100644 meta/packages/gzip/gzip-1.3.12/dup-def-fix.patch
 create mode 100644 meta/packages/gzip/gzip-1.3.12/m4-extensions-fix.patch
 create mode 100644 meta/packages/gzip/gzip_1.3.12.bb

diff --git a/meta/packages/gzip/gzip-1.3.12/dup-def-fix.patch b/meta/packages/gzip/gzip-1.3.12/dup-def-fix.patch
new file mode 100644
index 000000000..8308865a2
--- /dev/null
+++ b/meta/packages/gzip/gzip-1.3.12/dup-def-fix.patch
@@ -0,0 +1,45 @@
+gzip uses gnulib, whose header conflict with glibc. This patch rename some function to avoid conflict.
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+Index: gzip-1.3.12/gzip.c
+===================================================================
+--- gzip-1.3.12.orig/gzip.c	2010-08-13 10:29:38.000000000 +0800
++++ gzip-1.3.12/gzip.c	2010-08-13 10:29:44.000000000 +0800
+@@ -1637,7 +1637,7 @@
+ 	}
+       }
+ 
+-    if (futimens (ofd, ofname, timespec) != 0)
++    if (futimens_gnulib (ofd, ofname, timespec) != 0)
+       {
+ 	int e = errno;
+ 	WARN ((stderr, "%s: ", program_name));
+Index: gzip-1.3.12/lib/utimens.c
+===================================================================
+--- gzip-1.3.12.orig/lib/utimens.c	2010-08-13 10:33:47.000000000 +0800
++++ gzip-1.3.12/lib/utimens.c	2010-08-13 10:34:02.000000000 +0800
+@@ -75,7 +75,7 @@
+    Return 0 on success, -1 (setting errno) on failure.  */
+ 
+ int
+-futimens (int fd ATTRIBUTE_UNUSED,
++futimens_gnulib (int fd ATTRIBUTE_UNUSED,
+ 	  char const *file, struct timespec const timespec[2])
+ {
+   /* Some Linux-based NFS clients are buggy, and mishandle time stamps
+@@ -185,5 +185,5 @@
+ int
+ utimens (char const *file, struct timespec const timespec[2])
+ {
+-  return futimens (-1, file, timespec);
++  return futimens_gnulib (-1, file, timespec);
+ }
+Index: gzip-1.3.12/lib/utimens.h
+===================================================================
+--- gzip-1.3.12.orig/lib/utimens.h	2010-08-13 10:14:57.000000000 +0800
++++ gzip-1.3.12/lib/utimens.h	2010-08-13 10:21:45.000000000 +0800
+@@ -1,3 +1,3 @@
+ #include <time.h>
+-int futimens (int, char const *, struct timespec const [2]);
++int futimens_gnulib (int, char const *, struct timespec const [2]);
+ int utimens (char const *, struct timespec const [2]);
diff --git a/meta/packages/gzip/gzip-1.3.12/m4-extensions-fix.patch b/meta/packages/gzip/gzip-1.3.12/m4-extensions-fix.patch
new file mode 100644
index 000000000..927377286
--- /dev/null
+++ b/meta/packages/gzip/gzip-1.3.12/m4-extensions-fix.patch
@@ -0,0 +1,53 @@
+remove AC_USE_SYSTEM_EXTENSIONS to fix the autoconf error "AC_REQUIRE: circular
+dependency of AC_GNU_SOURCE"
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+Index: gzip-1.3.12/m4/extensions.m4
+===================================================================
+--- gzip-1.3.12.orig/m4/extensions.m4	2010-08-16 14:18:16.000000000 +0800
++++ gzip-1.3.12/m4/extensions.m4	2010-08-16 14:21:54.000000000 +0800
+@@ -12,44 +12,6 @@
+ # enough in this area it's likely we'll need to redefine
+ # AC_USE_SYSTEM_EXTENSIONS for quite some time.
+ 
+-# AC_USE_SYSTEM_EXTENSIONS
+-# ------------------------
+-# Enable extensions on systems that normally disable them,
+-# typically due to standards-conformance issues.
+-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
+-[
+-  AC_BEFORE([$0], [AC_COMPILE_IFELSE])
+-  AC_BEFORE([$0], [AC_RUN_IFELSE])
+-
+-  AC_REQUIRE([AC_GNU_SOURCE])
+-  AC_REQUIRE([AC_AIX])
+-  AC_REQUIRE([AC_MINIX])
+-
+-  AH_VERBATIM([__EXTENSIONS__],
+-[/* Enable extensions on Solaris.  */
+-#ifndef __EXTENSIONS__
+-# undef __EXTENSIONS__
+-#endif
+-#ifndef _POSIX_PTHREAD_SEMANTICS
+-# undef _POSIX_PTHREAD_SEMANTICS
+-#endif
+-#ifndef _TANDEM_SOURCE
+-# undef _TANDEM_SOURCE
+-#endif])
+-  AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
+-    [ac_cv_safe_to_define___extensions__],
+-    [AC_COMPILE_IFELSE(
+-       [AC_LANG_PROGRAM([
+-#	  define __EXTENSIONS__ 1
+-	  AC_INCLUDES_DEFAULT])],
+-       [ac_cv_safe_to_define___extensions__=yes],
+-       [ac_cv_safe_to_define___extensions__=no])])
+-  test $ac_cv_safe_to_define___extensions__ = yes &&
+-    AC_DEFINE([__EXTENSIONS__])
+-  AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+-  AC_DEFINE([_TANDEM_SOURCE])
+-])
+-
+ # gl_USE_SYSTEM_EXTENSIONS
+ # ------------------------
+ # Enable extensions on systems that normally disable them,
diff --git a/meta/packages/gzip/gzip_1.3.12.bb b/meta/packages/gzip/gzip_1.3.12.bb
new file mode 100644
index 000000000..c111e2e24
--- /dev/null
+++ b/meta/packages/gzip/gzip_1.3.12.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Standard GNU compressor"
+HOMEPAGE = "http://www.gnu.org/software/gzip"
+SECTION = "base"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://gzip.h;endline=22;md5=c0934ad1900d927f86556153d4c76d23 \
+                    file://lzw.h;endline=19;md5=c273e09a02edd9801cc74d39683049e9 "
+
+SRC_URI = "${GNU_MIRROR}/gzip/gzip-${PV}.tar.gz \
+           file://m4-extensions-fix.patch;patch=1 \
+           file://dup-def-fix.patch;patch=1"
+
+PR = "r0"
+
+inherit autotools
+
+do_install () {
+	autotools_do_install
+	# move files into /bin (FHS)
+	install -d ${D}${base_bindir}
+	mv ${D}${bindir}/gunzip ${D}${base_bindir}/gunzip.${PN}
+	mv ${D}${bindir}/gzip ${D}${base_bindir}/gzip.${PN}
+	mv ${D}${bindir}/zcat ${D}${base_bindir}/zcat.${PN}
+}
+
+pkg_postinst_${PN} () {
+	update-alternatives --install ${base_bindir}/gunzip gunzip gunzip.${PN} 100
+	update-alternatives --install ${base_bindir}/gzip gzip gzip.${PN} 100
+	update-alternatives --install ${base_bindir}/zcat zcat zcat.${PN} 100
+}
+
+pkg_prerm_${PN} () {
+	update-alternatives --remove gunzip gunzip.${PN}
+	update-alternatives --remove gzip gzip.${PN}
+	update-alternatives --remove zcat zcat.${PN}
+}
+
+BBCLASSEXTEND = "native"
-- 
cgit v1.2.3